|
From: SCHLEMMER N. <Nor...@pd...> - 2025-10-29 07:31:51
|
Hello All
Running the Roundup Docker container 2.5.0-1 with PostgreSQL 18 and Debian 13 / Trixie as host
An export was created from the productive Roundup instance 2.3.0.
After importing in version 2.5.0, new messages can be added to an existing issue but creating a new issue result in this violation; see logs attached (the import process takes approximately 6 hours...).
It makes no difference whether PostgreSQL 17 or 18 is used.
I will test the import with version 2.3.0 later today.
Thank you in advance for your support.
Br
Norbert
UniqueViolation: duplicate key value violates unique constraint "_issue_pkey" DETAIL: Key (id)=(3) already exists. Python 3.13.5
/usr/local/bin/python3.13
A problem occurred while running a Python script. Here is the sequence of function calls leading up to the error, with the most recent (innermost) call first. The exception attributes are:
__cause__ = None
__class__ = <class 'psycopg2.errors.UniqueViolation'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of UniqueViolation object>
__dict__ = {}
__dir__ = <built-in method __dir__ of UniqueViolation object>
__doc__ = None
__eq__ = <method-wrapper '__eq__' of UniqueViolation object>
__format__ = <built-in method __format__ of UniqueViolation object>
__ge__ = <method-wrapper '__ge__' of UniqueViolation object>
__getattribute__ = <method-wrapper '__getattribute__' of UniqueViolation object>
__getstate__ = <built-in method __getstate__ of UniqueViolation object>
__gt__ = <method-wrapper '__gt__' of UniqueViolation object>
__hash__ = <method-wrapper '__hash__' of UniqueViolation object>
__init__ = <method-wrapper '__init__' of UniqueViolation object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of UniqueViolation object>
__lt__ = <method-wrapper '__lt__' of UniqueViolation object>
__module__ = 'psycopg2.errors'
__ne__ = <method-wrapper '__ne__' of UniqueViolation object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of UniqueViolation object>
__reduce_ex__ = <built-in method __reduce_ex__ of UniqueViolation object>
__repr__ = <method-wrapper '__repr__' of UniqueViolation object>
__setattr__ = <method-wrapper '__setattr__' of UniqueViolation object>
__setstate__ = <built-in method __setstate__ of UniqueViolation object>
__sizeof__ = <built-in method __sizeof__ of UniqueViolation object>
__str__ = <method-wrapper '__str__' of UniqueViolation object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
add_note = <built-in method add_note of UniqueViolation object>
args = ('duplicate key value violates unique constraint "_issue_pkey"\nDETAIL: Key (id)=(3) already exists.\n',)
cursor = <cursor object at 0x7f32fc58ea70; closed: 0>
diag = <psycopg2.extensions.Diagnostics object>
pgcode = '23505'
pgerror = 'ERROR: duplicate key value violates unique cons...ssue_pkey"\nDETAIL: Key (id)=(3) already exists.\n'
with_traceback = <built-in method with_traceback of UniqueViolation object>
/usr/local/lib/python3.13/site-packages/roundup/backends/rdbms_common.py in sql(self=<roundpsycopgsql 0x7f32fc1f49e0>, sql='insert into _issue (_activity,_actor,_assignedto...us,_title,id) values (%s,%s,%s,%s,%s,%s,%s,%s,%s)', args=('2025-10-29 07:16:36.917', 4, 4, '2025-10-29 07:16:36.917', 4, 4, 8, 'Roundup 2.5.0 : Layout Modifications', '3'), cursor=<cursor object at 0x7f32fc58ea70; closed: 0>)
260 cursor = self.cursor
261 if args:
262 cursor.execute(sql, args)
cursor = <cursor object at 0x7f32fc58ea70; closed: 0>, global execute = undefined, sql = 'insert into _issue (_activity,_actor,_assignedto...us,_title,id) values (%s,%s,%s,%s,%s,%s,%s,%s,%s)', args = ('2025-10-29 07:16:36.917', 4, 4, '2025-10-29 07:16:36.917', 4, 4, 8, 'Roundup 2.5.0 : Layout Modifications', '3')
263 else:
264 cursor.execute(sql)
/usr/local/lib/python3.13/site-packages/roundup/backends/rdbms_common.py in addnode(self=<roundpsycopgsql 0x7f32fc1f49e0>, classname='issue', nodeid='3', node={'assignedto': '4', 'files': [], 'keyword': ['18'], 'messages': [], 'nosy': ['4'], 'priority': '4', 'status': '8', 'superseder': [], 'title': 'Roundup 2.5.0 : Layout Modifications'})
1078 # perform the inserts
1079 sql = 'insert into _%s (%s) values (%s)' % (classname, cols, s)
1080 self.sql(sql, vals)
self = <roundpsycopgsql 0x7f32fc1f49e0>, sql = 'insert into _issue (_activity,_actor,_assignedto...us,_title,id) values (%s,%s,%s,%s,%s,%s,%s,%s,%s)', vals = ('2025-10-29 07:16:36.917', 4, 4, '2025-10-29 07:16:36.917', 4, 4, 8, 'Roundup 2.5.0 : Layout Modifications', '3')
1081
1082 # insert the multilink rows
/usr/local/lib/python3.13/site-packages/roundup/backends/rdbms_common.py in create_inner(self=<hyperdb.Class "issue">, **propvalues={'assignedto': '4', 'files': [], 'keyword': ['18'], 'messages': [], 'nosy': ['4'], 'priority': '4', 'status': '8', 'superseder': [], 'title': 'Roundup 2.5.0 : Layout Modifications'})
1860
1861 # done
1862 self.db.addnode(self.classname, newid, propvalues)
self = <hyperdb.Class "issue">, global db = undefined, global addnode = undefined, global classname = undefined, newid = '3', propvalues = {'assignedto': '4', 'files': [], 'keyword': ['18'], 'messages': [], 'nosy': ['4'], 'priority': '4', 'status': '8', 'superseder': [], 'title': 'Roundup 2.5.0 : Layout Modifications'}
1863 if self.do_journal:
1864 self.db.addjournal(self.classname, newid, ''"create", {})
/usr/local/lib/python3.13/site-packages/roundup/backends/rdbms_common.py in create(self=<hyperdb.Class "issue">, **propvalues={'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'})
1708 """
1709 self.fireAuditors('create', None, propvalues)
1710 newid = self.create_inner(**propvalues)
newid = undefined, self = <hyperdb.Class "issue">, global create_inner = undefined, propvalues = {'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'}
1711 self.fireReactors('create', newid, None)
1712 return newid
/usr/local/lib/python3.13/site-packages/roundup/cgi/actions.py in _createnode(self=<roundup.cgi.actions.NewItemAction object>, cn='issue', props={'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'})
743 # create the node and return its id
744 cl = self.db.classes[cn]
745 return cl.create(**props)
cl = <hyperdb.Class "issue">, global create = undefined, props = {'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'}
746
747 def isEditingSelf(self):
/usr/local/lib/python3.13/site-packages/roundup/cgi/actions.py in _editnodes(self=<roundup.cgi.actions.NewItemAction object>, all_props={('issue', None): {'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'}}, all_links=[('issue', None, 'messages', [('msg', '-1')])])
686 else:
687 # make a new node
688 newid = self._createnode(cn, props)
newid = undefined, self = <roundup.cgi.actions.NewItemAction object>, global _createnode = undefined, cn = 'issue', props = {'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'}
689 if nodeid is None:
690 self.nodeid = newid
/usr/local/lib/python3.13/site-packages/roundup/cgi/actions.py in handle(self=<roundup.cgi.actions.NewItemAction object>)
896 try:
897 # when it hits the None element, it'll set self.nodeid
898 messages = self._editnodes(props, links)
messages = undefined, self = <roundup.cgi.actions.NewItemAction object>, global _editnodes = undefined, props = {('issue', None): {'assignedto': '4', 'keyword': ['18'], 'nosy': ['4'], 'priority': '4', 'status': '8', 'title': 'Roundup 2.5.0 : Layout Modifications'}}, links = [('issue', None, 'messages', [('msg', '-1')])]
899 except (ValueError, KeyError, IndexError, Reject) as message:
900 escape = not isinstance(message, RejectRaw)
/usr/local/lib/python3.13/site-packages/roundup/cgi/actions.py in execute(self=<roundup.cgi.actions.NewItemAction object>)
48 """Execute the action specified by this object."""
49 self.permission()
50 return self.handle()
self = <roundup.cgi.actions.NewItemAction object>, global handle = undefined
51
52 def examine_url(self, url):
/usr/local/lib/python3.13/site-packages/roundup/cgi/client.py in handle_action(self=<roundup.cgi.client.Client object>)
2406 return getattr(self, action_klass)()
2407
2408 return action_klass(self).execute()
action_klass = <class 'roundup.cgi.actions.NewItemAction'>, self = <roundup.cgi.client.Client object>, global execute = undefined
2409 except (ValueError, Reject) as err:
2410 escape = not isinstance(err, RejectRaw)
/usr/local/lib/python3.13/site-packages/roundup/cgi/client.py in inner_main(self=<roundup.cgi.client.Client object>)
907 # It can change self.classname and self.template,
908 # and may also append error/ok_messages.
909 html = self.handle_action() if csrf_ok else None
html = undefined, self = <roundup.cgi.client.Client object>, global handle_action = undefined, csrf_ok = True
910
911 if html:
Environment Variables
CONTENT_LENGTH '1792'
CONTENT_TYPE 'multipart/form-data; boundary=----geckoformboundary22d88e55123b32825148a07d5667ae74'
HTTP_ACCEPT_LANGUAGE 'de,en-US;q=0.7,en;q=0.3'
HTTP_AUTHORIZATION None
HTTP_COOKIE 'roundup_session_Roundupissuetracker=yTP8g7rLjQp0JIPplS/xCUslpb2PeMkU3wB/Nx5lABY; _pk_id.1.28af=d4ef3913f72d42f0.1759845249.'
|