-
Notifications
You must be signed in to change notification settings - Fork 37
Cawbird 1.0.3 (current git tip) coredumps on startup #51
Comments
Thanks for putting in a ticket. I found this yesterday when I built 1.0.3 on OBS and upgraded on my openSUSE Tumbleweed box and it failed. I spent about an hour trying to debug it, but couldn't get anywhere last night. Not helped by the fact that my local builds are perfectly fine and not affected! I mentioned it on Twitter but didn't get round to putting a ticket in here (because I thought I'd be able to track it down and fix it). |
Currently working on some debugging but as it's not erroring on local builds then I'm having to wait for OBS to build it Current patch at https://build.opensuse.org/package/view_file/home:IBBoard:desktop/cawbird/debug.diff?expand=1 if anyone can recreate it locally and wants to test it out/ feed back. |
So far I know that: I'll try more tomorrow. In the meantime, I deleted the v1.0.3 tag to make it clearer that the release is a dud and not to be used. |
Compiled with the patch, still crashes
|
That's odd. That stack trace is completely different and shows nothing that I can see as Cawbird code! Did you do anything to trigger that, or was it just on start-up? And what was the last bit of Cawbird logging before it? You might need to run |
|
FYI: The NixOS build of 21dd7df does not segfault. |
1.0.2 does not segfault |
I think some commits need to be reverted |
I can reliably reproduce this crash, but I apparently cannot get a copy of that patch from the OpenSUSE website (even after going through the hassle of registering). Can you put it on Github here in some accessible format, such as an attachment to this issue? |
Here's the last chunk of messages from a crash:
|
As an additional piece of information, the crash doesn't happen if I run the same binary (with the same environment variable settings) under
In case it's useful I'll attach the full output for both a non-valgrind crash and a valgrind session. |
@siebenmann It's odd you can't get the patch. I specifically tested from a Private Browsing window to make sure the file was accessible. A colleague mentioned optimisation issues. I don't know whether that fits with it running fine through valgrind. @schmittlauch Thanks for the info about NixOS. There must be something in the build, not just my environment. Do you know what optimisation settings it uses? @undevdecatos Unfortunately, the bit causing the crash was the big change for v1.0.3, and there's not really anything to unpick and revert as it's all so integrated. If we revert the bits around showing the quoted tweet media then we won't trigger the bug. If we revert the bits around parsing the quoted tweet media separately then we won't have anything to display! |
Possible red herring, but something that I'd like to check against NixOS, @schmittlauch - what does The OBS builds give me:
My local build (after stripping) gives me:
"pie" is Position Independent Executables. I'm wondering whether something about that process is causing the difference in behaviour. It doesn't explain why it segfaults, but it might be a clue. EDIT: Bullseye! PIE breaks it. I install |
My build is also PIE. I'm running it out of the raw
As far as OBS does, I may have been trying to get the debug.diff file the wrong way. I couldn't select and copy it out of the direct link, so I went to the Cawbird 'overview' page and clicked on the download link. This challenged me with a HTTP Basic authentication challenge asking for an 'API login'. |
Huh, odd. I could select and copy the text from the page. I know the download isn't available without a login, but maybe you need to be the owner. At least we appear to have found the consistent feature that's changing how it behaves. |
Well, that was annoying. If I had the time, I'd strip all of the C out of Cawbird and move it all to Vala! |
While this is closed (congrats) I can confirm that the NixOS build is not PIE:
|
That explains why it wasn't affected. My local builds weren't PIE at first either, and apparently you can reference a C function that is only in the If it did throw a warning about that at build time then I never saw it. |
I just built the latest git tip (tagged as v1.0.3), and it core dumps on startup for me but in a weird spot. Gdb says that the crash is:
This is translated Vala code:
This corresponds to
set_all_media
in src/widgets/MultiMediaWidget.vala but it appears impossible for this to happen, because the for loop looks like it should always constrain the value ofi
here so that it's a valid index. In the translated C code, though, it looks likemedias
itself could become corrupted without the length being bad, because they're passed as separate parameters and they're generated from separate pieces of information in src/CbTweet.c.The text was updated successfully, but these errors were encountered: