Enno Borgsteede
2014-08-21 21:31:05 UTC
Devs,
In the report I mentioned earlier, the reporter pasted a trace with
'NoneType' object has no attribute, but when I tested with his database,
my Gramps, same 4.1.1 AIO download, would never crash, but rather hang,
i.e. loop in a place function.
On Mantis, I see loads of reports with similar 'Nonetype' object errors,
which are often hard to reproduce, and now I wonder whether they may
have similar causes, i.e. loops that may run very long on PCs with large
memory, and crash with a 'Nonetype' object error when less (heap) memory
is available.
Right now it looks like a wild speculation, for which I've found no
support on the web yet, but I can imagine that in Python, combined with
all the libs that we use, programs run out of (heap) memory when in a
loop, and functions return None, and thus a 'Nonetype' object, where
such is not expected by us.
In https://gramps-project.org/bugs/view.php?id=7965, which never raised
an exception here, I found that that Gramps 4.1.1 AIO looped in the
exact location where it crashed on reporters PC, i.e. while looking up a
place name for an event to be exported to GEDCOM, where the place was
embedded in another place, which was embedded by itself. The event and
two places are exactly the same object types that show up in reporters
trace, in three different stacks for what I found to be nested function
calls in the analysis that I made yesterday night. That can't be a
coincidence, can it?
Reporter has a German Windows 8.1, I tested on 2 PCs with Dutch Windows
8.1, and WindowsXP running in VirtualBox, with the exact same 4.1.1 AIO.
I have intel i7 and i3 here, and don't know what hardware reporter has.
Can hardware cause such a difference with Gramps looping here, and
crashing on his, with 3 separate stack traces that reveal the exact
calls where I found the loop, apparently in different threads? I'm quite
confused.
regards,
Enno
In the report I mentioned earlier, the reporter pasted a trace with
'NoneType' object has no attribute, but when I tested with his database,
my Gramps, same 4.1.1 AIO download, would never crash, but rather hang,
i.e. loop in a place function.
On Mantis, I see loads of reports with similar 'Nonetype' object errors,
which are often hard to reproduce, and now I wonder whether they may
have similar causes, i.e. loops that may run very long on PCs with large
memory, and crash with a 'Nonetype' object error when less (heap) memory
is available.
Right now it looks like a wild speculation, for which I've found no
support on the web yet, but I can imagine that in Python, combined with
all the libs that we use, programs run out of (heap) memory when in a
loop, and functions return None, and thus a 'Nonetype' object, where
such is not expected by us.
In https://gramps-project.org/bugs/view.php?id=7965, which never raised
an exception here, I found that that Gramps 4.1.1 AIO looped in the
exact location where it crashed on reporters PC, i.e. while looking up a
place name for an event to be exported to GEDCOM, where the place was
embedded in another place, which was embedded by itself. The event and
two places are exactly the same object types that show up in reporters
trace, in three different stacks for what I found to be nested function
calls in the analysis that I made yesterday night. That can't be a
coincidence, can it?
Reporter has a German Windows 8.1, I tested on 2 PCs with Dutch Windows
8.1, and WindowsXP running in VirtualBox, with the exact same 4.1.1 AIO.
I have intel i7 and i3 here, and don't know what hardware reporter has.
Can hardware cause such a difference with Gramps looping here, and
crashing on his, with 3 separate stack traces that reveal the exact
calls where I found the loop, apparently in different threads? I'm quite
confused.
regards,
Enno