[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnumed-bugs] <bug>: on saving encounter
From: |
Karsten Hilbert |
Subject: |
Re: [Gnumed-bugs] <bug>: on saving encounter |
Date: |
Mon, 28 Nov 2016 15:51:55 +0100 |
User-agent: |
NeoMutt/20161104 (1.7.1) |
Hi Marc
thanks for your report.
You have hit upon an extremely rare situation of PostgreSQL
making sure GNUmed really sees what it is supposed to see
(and in this case, simply needs to re-read what it wants to
see.) This is called Rollover Conflict in:
https://wiki.postgresql.org/wiki/SSI
I'll try to make GNUmed notice this situation and try to
automætically work around it.
Karsten
On Thu, Nov 24, 2016 at 01:11:07PM +0100, Marc Angermann wrote:
> user comment : on saving encounter
>
> client version: 1.6.10
...
> 2016-11-24 13:09:55 ERROR gm.db
> (/usr/share/gnumed/Gnumed/pycommon/gmPG2.py::run_rw_queries() #1688): RW
> query failed: [
> SELECT * FROM clin.v_narrative
> WHERE
> pk_narrative =
> currval(pg_get_serial_sequence('clin.clin_narrative', 'pk'))]
> 2016-11-24 13:09:55 ERROR gm.db
> (/usr/share/gnumed/Gnumed/pycommon/gmPG2.py::run_rw_queries() #1692): PG
> error code: 40001
> 2016-11-24 13:09:55 ERROR gm.db
> (/usr/share/gnumed/Gnumed/pycommon/gmPG2.py::run_rw_queries() #1694): PG
> error message: ERROR: could not serialize access due to read/write
> dependencies among transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
> 2016-11-24 13:09:55 ERROR gm.gui
> (/usr/share/gnumed/Gnumed/wxpython/gmExceptionHandlingWidgets.py::handle_uncaught_exception_wx()
> #215): enabling debug mode
> 2016-11-24 13:09:55 DEBUG gm.gui
> (/usr/share/gnumed/Gnumed/wxpython/gmExceptionHandlingWidgets.py::handle_uncaught_exception_wx()
> #219): unhandled exception caught:
> Traceback (most recent call last):
> File "/usr/share/gnumed/Gnumed/wxpython/gmNarrativeWidgets.py", line 708,
> in _on_save_note_button_pressed
> gmTools.none_if(self._TCTRL_rfe.GetValue().strip(), u'')
> File "/usr/share/gnumed/Gnumed/wxpython/gmNarrativeWidgets.py", line 888,
> in save_current_editor
> if not page.save(emr = emr, episode_name_candidates =
> episode_name_candidates, encounter = encounter):
> File "/usr/share/gnumed/Gnumed/wxpython/gmProgressNotesEAWidgets.py", line
> 243, in save
> encounter_id = encounter
> File "/usr/share/gnumed/Gnumed/business/gmClinNarrative.py", line 210, in
> create_progress_note
> link_obj = link_obj
> File "/usr/share/gnumed/Gnumed/business/gmClinNarrative.py", line 278, in
> create_narrative_item
> rows, idx = gmPG2.run_rw_queries(link_obj = link_obj, queries = queries,
> return_data = True, get_col_idx = True)
> File "/usr/share/gnumed/Gnumed/pycommon/gmPG2.py", line 1686, in
> run_rw_queries
> curs.execute(query['cmd'], args)
> File "/usr/lib/python2.7/dist-packages/psycopg2/extras.py", line 120, in
> execute
> return super(DictCursor, self).execute(query, vars)
> TransactionRollbackError: could not serialize access due to read/write
> dependencies among transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
...
> 2016-11-24 13:09:55 DEBUG gm.db
> (/usr/share/gnumed/Gnumed/pycommon/gmBackendListener.py::_process_notifications()
> #223): #102: Notify(4468, 'gm_table_mod',
> 'operation=INSERT::table=clin.clin_narrative::PK name=pk::row
> PK=79620::person PK=5524') (first param is PID of sending backend)
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #161):
> exception: could not serialize access due to read/write dependencies among
> transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #162): type:
> <class 'psycopg2.extensions.TransactionRollbackError'>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #163): list
> of attributes:
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> args: ('could not serialize access due to read/write dependencies among
> transactions\nDETAIL: Reason code: Canceled on conflict out to pivot 405717,
> during read.\nHINT: The transaction might succeed if retried.\n',)
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> cursor: <cursor object at 0x7f5a9e0a5350; closed: -1>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> diag: <psycopg2.extensions.Diagnostics object at 0x7f5abf18da08>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> message: could not serialize access due to read/write dependencies among
> transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> pgcode: 40001
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> pgerror: ERROR: could not serialize access due to read/write dependencies
> among transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
>
> 2016-11-24 13:09:55 DEBUG gm.logging
> (/usr/share/gnumed/Gnumed/pycommon/gmLog2.py::log_stack_trace() #165):
> u_pgerror: ERROR: could not serialize access due to read/write dependencies
> among transactions
> DETAIL: Reason code: Canceled on conflict out to pivot 405717, during read.
> HINT: The transaction might succeed if retried.
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346