[GNC] Segmentation fault when I try to enter anything

Gerrit Holl gerrit.holl at gmail.com
Fri Jan 31 19:06:09 EST 2020


Hi,

I recently upgraded to gnucash 3.7, or rather reinstalled it on a new
Ubuntu 19.10 system.  I've started to get reproducible segmentation
faults:

- start gnucash (all is well)
- open my existing expenses file
- go to any account tab
- try to write anything in any column (description, amount, etc.)
- as soon as I press a key to enter anything, I get a segmentation fault

OR

- start gnucash
- create new file
- create an account
- go to account
- write anything in it

which both result in Segmentation Fault (core dumped)

Following the advise at
https://lists.gnucash.org/pipermail/gnucash-user/2018-February/075121.html,
I ran gnucash --log gnc.backend.dbi=debug which is supposed to "write
the SQL queries to your gnucash.trace".  Unfortunately there is
nothing there.  The contents of gnucash.trace:

* 00:50:44 INFO [gnc_module_init_backend_dbi] GNC_DBD_DIR not set:
using libdbi built-in default

Not sure if that INFO message is relevant.

Otherwise there is the file money_tracking.gnucash.20200201005051.log
which contains nothing much either:

mod trans_guid split_guid time_now date_entered date_posted acc_guid
acc_name num description notes memo action reconciled amount value
date_reconciled ----------------- ===== START ===== END

I.e. it's empty as far as I can see.

In case it helps, I have run `strace -ff`, the last lines of the 14
strace files are below

What else can I do to diagnose the cause of this problem?  Some
incompatible library that got wrongly installed?  I deleted gnucash
and reinstalled it, but this does not resolve the problem.  I've also
moved /home/gerrit/.local/share out of the way but the symptoms remain
identical.  I'm a bit surprised at the latter; when I move the
.local/share out of the way digikam still starts with my default
expenses file, how does it know?  What other information should I look
up to dig into this?


==> str.15514 <==
recvmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\1\1\25!\0\0\0\0\30|+\2q\0074\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource
temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource
temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6,
events=POLLIN}], 3, 6337) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="#\203\25!\26\0\0\0\2\0\3\0\374\323G\1&\0\0\0k\1\0\0T\4@\0\0\0\0\0"...,
iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 120
recvmsg(4, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="#\203\25!\0\0\0\0\f\0\17\0\376\323G\1U\1\0\0\2\0\0\0\0\0\0\0\0\0\0\0",
iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource
temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource
temporarily unavailable)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xf8} ---
+++ killed by SIGSEGV (core dumped) +++

==> str.15515 <==
mprotect(0x7f80e4000000, 135168, PROT_READ|PROT_WRITE) = 0
prctl(PR_SET_NAME, "gmain")             = 0
poll([{fd=9, events=POLLIN}], 1, -1)    = 1 ([{fd=9, revents=POLLIN}])
read(9, "\1\0\0\0\0\0\0\0", 16)         = 8
poll([{fd=9, events=POLLIN}], 1, -1)    = 1 ([{fd=9, revents=POLLIN}])
read(9, "\1\0\0\0\0\0\0\0", 16)         = 8
wait4(15528, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGKILL}], WNOHANG,
NULL) = 15528
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
poll([{fd=9, events=POLLIN}], 1, -1 <unfinished ...>) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15516 <==
futex(0x558f534e30b0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x558f534e30b0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x558f534e30b0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x558f53426358, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=8, events=POLLIN}], 1, 0)     = 0 (Timeout)
write(11, "\1\0\0\0\0\0\0\0", 8)        = 8
poll([{fd=8, events=POLLIN}, {fd=11, events=POLLIN}], 2, -1) = 1
([{fd=11, revents=POLLIN}])
read(11, "\1\0\0\0\0\0\0\0", 16)        = 8
poll([{fd=8, events=POLLIN}, {fd=11, events=POLLIN}], 2, -1
<unfinished ...>) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15519 <==
read(10, "\1\0\0\0\0\0\0\0", 16)        = 8
futex(0x558f534beed8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
poll([{fd=10, events=POLLIN}], 1, -1)   = 1 ([{fd=10, revents=POLLIN}])
futex(0x558f534e30b0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN
(Resource temporarily unavailable)
read(10, "\1\0\0\0\0\0\0\0", 16)        = 8
futex(0x558f534e30b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x558f53426358, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x558f53426358, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=10, events=POLLIN}], 1, -1 <unfinished ...>) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15520 <==
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de0, FUTEX_WAIT_PRIVATE, 10, NULL) = 0
futex(0x7f80f2ae1de0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAKE_PRIVATE, 2147483647) = 6
futex(0x7f80f2ae1dec, FUTEX_WAKE_PRIVATE, 2147483647) = 7
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15521 <==
futex(0x7f80f2ae1de8, FUTEX_WAKE_PRIVATE, 2147483647) = 1
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN
(Resource temporarily unavailable)
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN
(Resource temporarily unavailable)
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15522 <==
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae1de8, FUTEX_WAKE_PRIVATE, 2147483647) = 4
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15523 <==
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15524 <==
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15525 <==
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15526 <==
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1dec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f80f2ae19c0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1de8, FUTEX_WAIT_PRIVATE, 0, NULL) = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15527 <==
futex(0x7f80f2ae1940, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(14, "\0", 1)                       = 1
futex(0x7f80f2ae1940, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1940, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f80f2ae1940, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x558f539a4f68, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(14,  <unfinished ...>)             = ?
+++ killed by SIGSEGV (core dumped) +++

==> str.15528 <==
rt_sigaction(SIGRT_28, NULL, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_29, NULL, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_30, NULL, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_31, NULL, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_32, NULL, {sa_handler=SIG_DFL, sa_mask=[],
sa_flags=0}, 8) = 0
rt_sigaction(SIGABRT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGIO, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(1, "(\"1.47\" \"adig\" \"aex\" \"aiahk\" \"al"..., 996) = 996
+++ killed by SIGKILL +++

==> str.15529 <==
write(19, "slot>\n        <slot>\n          <"..., 4096) = 4096
write(19, "        <slot>\n          <slot:k"..., 4096) = 4096
write(19, "e>\n        </slot>\n        <slot"..., 4096) = 4096
write(19, "      </slot>\n        <slot>\n   "..., 4096) = 4096
write(19, "</slot>\n        <slot>\n         "..., 2556) = 2556
close(20)                               = 0
close(19)                               = 0
madvise(0x7f80d32d5000, 8368128, MADV_DONTNEED) = 0
exit(0)                                 = ?
+++ exited with 0 +++


best regards,
Gerrit Holl.


More information about the gnucash-user mailing list