Issue 10777

Title
'RecursionError: maximum recursion depth exceeded in comparison' refreshing after reconcile
Priority
bug
Status
chatting
Nosy list
ced, nicoe, risto3
Assigned to
Keywords

Created on 2021-09-22.09:37:13 by risto3, last changed 1 month ago by ced.

Messages

Author: [hidden] (ced) Tryton committer Tryton translator
Date: 2021-10-20.18:49:42

I doubt it is linked to rev eec33f5ae46d. Indeed I can not reproduce it.
The traceback of msg70259 seems to suggest that some fields to validate are not loaded but after loading them they are still not loaded. This seems very strange and I can not reproduce.

Author: [hidden] (nicoe) Tryton committer
Date: 2021-10-20.18:08:06

Apparently it's related to changeset https://hg.tryton.org/tryton/rev/eec33f5ae46d/ because reverting it remove the error.

Author: [hidden] (risto3)
Date: 2021-10-14.07:03:43

bumping up to urgent, as apparently the crashes dump the client at times (but not every time).

Author: [hidden] (risto3)
Date: 2021-09-22.15:03:21

well, on demo I created two moves to simulate the problem :

Company,Number,Journal,Period,Effective Date,Description,State (string),Lines/Account,Lines/Debit,Lines/Credit
Michael Scott Paper Company,7,Bank,2021-09,09/22/2021,pong,Draft,Main Payable,100,
,,,,,,,Main Cash,0,100
Michael Scott Paper Company,15,Expense,2021-09,09/01/2021,ping,Draft,Main Payable,,100
,,,,,,,Main Expense,100,0

then went to charts->open chart of accounts and opened 'Main payable'

Then entered a filter: "Reconciliation: ="
then reconciled 'ping' with 'pong'
then refreshed.... pow

you may have to create new moves

Author: [hidden] (ced) Tryton committer Tryton translator
Date: 2021-09-22.09:56:42

Please provide a scenario to replicate the error.

Author: [hidden] (risto3)
Date: 2021-09-22.09:37:13

with tryton-6.0.6, after reconciling some moves directly via the accounting plan, if I refresh, I get the following error:

ERROR:tryton.common.common:  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/view/list.py", line 1005, in __select_changed
    if not previous_record.validate(self.get_fields()):
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 390, in validate
    self._check_load(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 251, in _check_load
    self.reload(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 495, in reload
    self.validate(fields or [])
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 390, in validate
    self._check_load(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 251, in _check_load
    self.reload(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 495, in reload
    self.validate(fields or [])
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 390, in validate
    self._check_load(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 251, in _check_load
    self.reload(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 495, in reload
    self.validate(fields or [])
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 390, in validate
    self._check_load(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 251, in _check_load
    self.reload(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 495, in reload
    self.validate(fields or [])
... [repeated many times]
 File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 390, in validate
    self._check_load(fields)
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 250, in _check_load
    if not self.get_loaded(fields):
  File "/usr/lib/python3.9/site-packages/tryton/gui/window/view_form/model/record.py", line 261, in get_loaded
    return set(fields) <= (self._loaded | set(self.modified_fields))

RecursionError: maximum recursion depth exceeded in comparison

(tryton:3748): Gdk-WARNING **: 09:30:12.720: The program 'tryton' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
  (Details: serial 133467 error_code 11 request_code 130 (MIT-SHM) minor_code 5)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

as it has happened a few times it seems repeatable.

History
Date User Action Args
2021-10-20 18:49:42cedsetmessages: + msg71145
2021-10-20 18:08:06nicoesetmessages: + msg71143
nosy: + nicoe
2021-10-14 09:18:09cedsetstatus: need-eg -> chatting
2021-10-14 09:17:58cedsetpriority: urgent -> bug
2021-10-14 07:03:43risto3setmessages: + msg70999
priority: bug -> urgent
2021-09-22 15:03:21risto3setmessages: + msg70274
2021-09-22 09:56:42cedsetmessages: + msg70260
nosy: + ced
status: unread -> need-eg
2021-09-22 09:37:13risto3create

Showing 10 items. Show all history (warning: this could be VERY long)