<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:24:41 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-2978] Remove uuid_generate_v4(), it fails in pgpool native replication</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2978</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;uuid_generate_v4() creates a different UUID in each node of a replicated PostgreSQL environment if Pgpool-II runs in native replication mode.&lt;br/&gt;
 This has been reported for the similar function gen_random_uuid() with Pgpool-II replication in #sys-ops on Slack. From the Pgpool-II manual:&lt;br/&gt;
 &lt;a href=&quot;https://www.pgpool.net/docs/latest/en/html/restrictions.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.pgpool.net/docs/latest/en/html/restrictions.html&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;There is no guarantee that any data provided using a context-dependent mechanism (e.g. random number, transaction ID, OID, SERIAL, sequence), will be replicated correctly on multiple backends.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;RMB documentation mentions it in the &lt;a href=&quot;https://github.com/folio-org/raml-module-builder/blob/master/doc/upgrading.md#version-25&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;upgrading guide for RMB 25&lt;/a&gt; and in connection with &quot;generateId&quot;: &lt;a href=&quot;https://github.com/folio-org/raml-module-builder/#the-post-tenant-api&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder/#the-post-tenant-api&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tasks:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Create an issue for each module that still uses uuid_generate_v4() from uuid-ossp
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;https://github.com/search?q=org%3Afolio-org+uuid_generate_v4&amp;amp;type=Code&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/search?q=org%3Afolio-org+uuid_generate_v4&amp;amp;type=Code&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://github.com/search?q=org%3Afolio-org+uuid-ossp&amp;amp;type=Code&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/search?q=org%3Afolio-org+uuid-ossp&amp;amp;type=Code&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Remove uuid_generate_v4() and &quot;CREATE EXTENSION uuid-ossp&quot;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Note:&lt;br/&gt;
 For predefined records use a hard-coded UUID.&lt;br/&gt;
 For calculated records re-use the UUID of the primary source record.&lt;br/&gt;
 Or use the md5sum trick: If a string (for example a JSONB::text) is unique calculate md5sum(s)::text::uuid to get a unique UUID.&lt;/p&gt;

&lt;p&gt;To prevent any new usage of uuid_generate_v4() RMB and Spring base should add this function that takes precedence of the uuid-ossp function:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
CREATE OR REPLACE FUNCTION &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt;.uuid_generate_v4() RETURNS uuid
language plpgsql as $$
BEGIN
  RAISE &lt;span class=&quot;code-quote&quot;&gt;&apos;FOLIO doesn&apos;&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&apos;t allow uuid_generate_v4() because it doesn&apos;&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&apos;t work with a replicated database like Pgpool-II&apos;&lt;/span&gt;
    USING ERRCODE = &lt;span class=&quot;code-quote&quot;&gt;&apos;feature_not_supported&apos;&lt;/span&gt;;
END;
$$;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Note:&lt;/p&gt;

&lt;p&gt;This doesn&apos;t affect Pgpool-II streaming replication mode, it only affect Pgpool-II native replication mode.&lt;/p&gt;</description>
                <environment></environment>
        <key id="79762">FOLIO-2978</key>
            <summary>Remove uuid_generate_v4(), it fails in pgpool native replication</summary>
                <type id="10001" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium">Bug</type>
                                            <priority id="10003" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p4.svg">P4</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5ee89462f7aa140abd82d11d">Julian Ladisch</reporter>
                                    <labels>
                    </labels>
                <created>Mon, 25 Jan 2021 17:21:00 +0000</created>
                <updated>Mon, 16 Aug 2021 14:27:32 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                    <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="67301">MODFISTO-215</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="79638">FOLIO-2447</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i029i7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1423">CP: Non-roadmap backlog</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>