Forums » Bugs

IUP segfault

May 26, 2013 zak.wilson link
I get this a lot on logoff or ReloadInterface()

Errors.log:
sigsegv_trap

caught SIGABRT; generating stack trace
fault address 0x3e80000425d, c35ed080, fffffffa
cr2 0x0000000000000000 0
oldmask 0x0000000000000000 0
trapno 0x0000000000000000 0
err 0x0000000000000000 0
csgsfs 0x0000000000000033 51
efl 0x0000000000000202 514
rip 0x00007f7877737475 140155376858229
rsp 0x00007fff4db620b8 140734497169592
rcx 0xffffffffffffffff -1
rax 0x0000000000000000 0
rdx 0x0000000000000006 6
rbx 0x00007fff4db67c1d 140734497192989
rbp 0x00007f787784fc71 140155378007153
rsi 0x000000000000425d 16989
rdi 0x000000000000425d 16989
r15 0x000000000000011d 285
r14 0x00007f787784fc71 140155378007153
r13 0x00000000006561c7 6644167
r12 0x0000000000656227 6644263
r11 0x0000000000000202 514
r10 0x0000000000000008 8
r9 0x6e6f697472657373 7957695015443329907
r8 0x00007f7878fe8720 140155402749728
brk> 00007f7877737475: 0a73257325732573 4157004f464e4900 524500474e494e52 544c414800524f52
x:257325732500203a

caught SIGSEGV; generating stack trace
fault address (nil), 77753c8c, 00000080
cr2 0x0000000000000000 0
oldmask 0x0000000000000020 32
trapno 0x000000000000000d 13
err 0x0000000000000000 0
csgsfs 0x0000000000000033 51
efl 0x0000000000010246 66118
rip 0x00000000005c4d80 6049152
rsp 0x00007fff4db61bb0 140734497168304
rcx 0x00007f78777d3b0d 140155377498893
rax 0x0000000000000000 0
rdx 0x2573257325732573 2698541778204829043
rbx 0x00007f787784fc71 140155378007153
rbp 0x000000000d4d0280 223150720
rsi 0x0000000000000000 0
rdi 0x257325732500203a 2698541778197291066
r15 0x00007f787784fc71 140155378007153
r14 0x00007f7877737475 140155376858229
r13 0x00007fff4db61c40 140734497168448
r12 0x000000000000000a 10
r11 0x0000000000000001 1
r10 0x0000000000000000 0
r9 0x00000000ffffffff 4294967295
r8 0x00007f7878fe8720 140155402749728
brk> 00000000005c4d80: 00007f787901d000 00007f787901d000 00007f787901d000 00007f787901d000
x:00007f78fbad3c84

Terminal:

$ .vendetta/update.rlb
warning: Unknown nb_ctl request: 12
warning: The VAD has been replaced by a hack pending a complete rewrite
warning: Unknown nb_ctl request: 12
warning: The VAD has been replaced by a hack pending a complete rewrite
warning: Unknown nb_ctl request: 12
warning: The VAD has been replaced by a hack pending a complete rewrite
vendetta: ../iup/itable.c:285: iupTableRemove: Assertion `it && key' failed.
Segmentation fault
May 26, 2013 draugath link
Did you have any plugins installed?
May 27, 2013 zak.wilson link
Half a dozen, and I have not tried to isolate the cause of the crash by disabling plugins. It would be difficult, given that the crash does not occur consistently.

I consider it a bug if a plugin can cause a segfault. Nothing a plugin does should result in unchecked manipulation of pointers.
May 27, 2013 PaKettle link
vendetta: ../iup/itable.c:285: iupTableRemove: Assertion `it && key' failed.

Yep - the table.remove function has a few holes in it
removing a nil has some pretty interesting results.

its a plug in doing it but nothing to say which plug in is the culprit
May 28, 2013 draugath link
If it's caused by a plugin, it's not a bug. The devs provide the API so that players can extend the interface, but the devs will only support the basic client interface. Any problems arising from the use of plugins are outside the realm of their support. In fact, they will just ask you to remove your plugins and verify it is still happening.
May 28, 2013 Pizzasgood link
"I consider it a bug if a plugin can cause a segfault."

This. Bugs in the sandbox are still bugs.
May 28, 2013 raybondo link
Plugins are not a 100% supported feature, so any crashes due to a plugin are out of our hands.

It's like having an app crash in Windows/Linux/OSX and claiming Windows/Linux/OSX has a bug.
May 30, 2013 zak.wilson link
No, not quite. It's like having an app cause the OS to kernel panic and claiming the OS has a bug. If a userspace app can cause a kernel panic, the OS does have a bug.
May 30, 2013 abortretryfail link
Isn't that what we tell people when they're playing VO and their video driver kernel panics?
May 30, 2013 PaKettle link
As much as I hate to say it - it is almost impossible to completely fool proof the code. There are 10,000 ways to crash it and detecting all of them is a bit much to expect.

To isolate which plug in - uninstall half of them and see if it still does it...if it does then uninstall half again and retest. if it doesnt then install a few instead...

When you think you know which one it is then reinstall everything else and if the crashes are gone report the bug to the plug in maintainer.
May 31, 2013 zak.wilson link
Of course it's impossible to foolproof code; that's why we have a bugs forum.

Thanks for the plugin isolation guide. I imagine someone who doesn't know how might read this and find it of use.

I already know how to track down a bad plugin. Given some time, I can probably find and correct the bug in the plugin as well. There are three problems though:

1. The crash is unpredictable as far as I know. I cannot reliably reproduce it.
2. A crash makes it a lot harder to do anything useful with any of the tools available for debugging plugins.
3. A plugin being able to cause a segfault is still a serious bug, and I'm hoping to get it acknowledged as such. I'd even be happy with "this is a serious bug, but it happens rarely in practice so we're going to triage it indefinitely".
May 31, 2013 raybondo link
Actually, the first one is a SIGABRT, the game is aborting because it got a NULL pointer when it didn't expect one.
The second one (SIGSEGV) is surprising because the SIGABRT should not have let the game continue such that it is able to crash.
May 31, 2013 Pizzasgood link
Question: are you using BountyHUD? I'm doing some IUP stuff in it that I'm not sure is legit. I've also noticed VO crashing like this a few times lately (I've definitely gotten some SIGABRTs, not sure if I got any SIGSEGVs). It coincides with roughly when I started working on BountyHUD, but then again it also coincides with which I started playing more frequently again. I disabled it a couple sessions ago and haven't seen it crash since, but it was infrequent enough that this doesn't really mean anything yet.

The next suspect on my list if it happens again is FlamboyanceHUD, since I believe that's the only other plugin I've installed lately.
May 31, 2013 zak.wilson link
I am not. I'll see if I can figure out how to reproduce this reliably. I can probably fix my own problem and contribute a better bug report at the same time.