Segfault in urbackupsrv 2.4.12

I’m using urbackup server 2.4.12 on a linux debian buster.
A few days ago it was segfaulting.

Mar 24 01:29:51 urbackup kernel: [4520175.795706] fbackup hash[10440]: segfault at 7f26ebfe0000 ip 000055e98688afcf sp 00007f26ebfddce0 error 4 in urbackupsrv[55e9866bf000+4af000]
Mar 24 01:29:51 urbackup kernel: [4520175.795718] Code: 0f 1f 00 ba 00 10 00 00 e8 be 52 f0 ff 41 89 04 24 48 89 d8 49 f7 e5 48 c1 ea 03 48 8d 04 52 48 89 da 48 83 c3 01 48 c1 e0 02 <41> 8b 74 9f 0c 48 29 c2 4d 8d 64 96 10 41 8b 3c 24 48 39 eb 75 c3

Unfortunately that’s about everything I can tell you. There are no further logs about it or anything. Otherwise the server seems to work perfectly. No other services had problems.
I’ve started it up again. And since then it seems to be working again. Before it was working stable for months.

Depending on which package you use there might be debug symbols available. Then

gdb /usr/bin/urbackupsrv
info line *0x4af000

might give a hint. Long shot, though.

I’ve tried it out, but no success:

No line number information available for address 0x4af000

You need to install the *-dbg/*-dbgsym package…

Would have been helpful getting a hint where to get that package from. It’s not linked anywhere in the download section. I already wanted to give up when I accidentally found it.
and then it seems that the command chances to

gdb /usr/lib/debug/usr/bin/urbackupsrv

the output after the info part is:

Line 2753 of “common/miniz.c” starts at address 0x4aeffe <tinfl_decompress+814> and ends at 0x4af001 <tinfl_decompress+817>.

Hmm, sorry I think the hex value on the right side is actually the executable size. And for the instruction we’d need to substract the offset from IP.

0x55e98688afcf-0x55e9866bf000 = 0x1CBFCF

could you run that number through info *line? Thanks!

The question is why it pointed to valid code, though… if you do gdb /usr/bin/urbackupsrv it should work btw. If it doesn’t then the debug symbols don’t match the binary and it won’t point to the correct thing.

When I use that address I get “No line number information” as above.
Doesn’t matter if which urbackupsrv I use

When I pointed directly add /usr/bin/urbackupsrv I’ve got the same no line info available as at the beginning.
I’ve installed
https://www.urbackup.org/downloads/Server/2.4.12/urbackup-server-dbg_2.4.12_amd64.deb
which should match urbackup-server_2.4.12_amd64.deb which I’ve downloaded in the middle of december?

Thanks, with that info I could do it myself.

I needed to use maintenance info sections in gdb to get the offset the exectuable is loaded into in gdb (0x00400000). Then adding that gives me 0x5cbfca, but

(gdb) info line *0x5cbfca
No line number information available for address 0x5cbfca <_ZN8TreeHash13finalize_currEv+166>

The binary isn’t compiled with debug symbols for c++ stuff :man_facepalming:

In other news, I don’t think the debian build was optimized either. And nobody seems to have noticed.

and also in other words we can’t find the reason for the segfault right now. But need to wait for it to appear again once we’ve got a proper binary? Since I’m the only one complaining so far and I’ve also had it only once in 4 months, it seems to appear only under very special conditions (Or other people just didn’t care to report).