-
Notifications
You must be signed in to change notification settings - Fork 39
Core dump when clicking on author of retweet #425
Comments
I can't recreate that. It's working fine on openSUSE from the OBS builds. Unfortunately the log doesn't say anything useful. It's just logging normal behaviour and not the error. A few questions:
|
Hello, thanks for taking the time.
|
The home timeline and the user timelines should be using the same widget, so it's weird that there's different behaviour. Can you follow the instructions here and provide a stack trace from the coredump? It should tell me which function failed and some of the context. |
Ok, I think I got what you wanted, but I had to follow this guide instead:
Does that help you at all? I don't have a lot of C experience. |
Okay, so Ubuntu has an awkward way of generating tracebacks! In openSUSE I just do Unfortunately, that's pretty much all in GTK and GObject, which are libraries that we use rather than our code, so it's not helpful in working out what's going on. And unfortunately it's showing line numbers for main.c, which is transpiled from Vala, so I can't even tell what it's doing there (but it's not likely to be helpful because that code basically starts things and not much more). I think I've seen another stack trace that was dumping out in the wrong place, though, so I'll see what else I can work out. |
No problem! Let me know if there's anything else I can try that'd help narrow down the issue. |
Based on other users's feedback then you might need the cawbird-dbg package to give |
Sadly I already installed |
Okay, thanks. I'll have to poke a bit more and work out how to get more backtraces out of |
Aha, right, now that I looked again at the dump it actually has 5 threads, I'll post the backtrace for all:
|
Normally And unfortunately, all of the other threads appear to be in library code as well. Which means something went REALLY wrong. We must have corrupted an object that we pass to GTK. We handle it fine because we don't touch the broken part, but GTK then tries to use it and explodes with a segfault. If I make a new build that has more logging around the username links, could you swap to |
Yeah sure, I can do that. Let me know when there's something I can test. |
I've just started to add the logging and found that we already log an "Activating " line. Checking your log, I can now see that there's a Looks like the cause isn't the link opening, but the subsequent profile loading. How soon after opening the user's timeline do you click on the RT? Does it still happen if you leave it a few seconds so that all network activity is completed? I'll still add some more debugging, but it's just that my immediate thought is that we're not handling interrupted connections very well. |
Some new |
Ok, I tried this again, I got the attached log and core dump. Just speculating here but it looks like the avatar of the user I'm visiting before it crashes is removed from cache. Is it possible it's some kind of use-after-free bug on the avatar picture, and that's what making it segfault? |
Maybe. It does seem odd that we're un-caching the avatar just before using it! I'll try to add some more logging as well. It concerns me slightly that there's three instances of In the
(Or whatever frames the |
I tried it, but gdb just says |
Yeah, not entirely unexpected. It's probably not got the debug symbols that give it enough information (because that also slows it down when it runs) |
I've added more logging and the packages should be building now. It's going to get even noisier in the logs 😁 Hopefully it helps! |
This is the tail end of the log from cawbird-unstable. Sadly I can't post the entire thing as it contains too much personal info to edit out.
|
I should also add that I updated to the latest |
Ah. My patch for the "withheld accounts" has broken it. That'll probably be because I added an image, and they're not included in patch files 😑 I'm going to have to compare those logs to the code a bit more over this week. The next line after the last log message is a call to There must be something that's it's doing that's odd. I suspect it's going to be some bizarre corner case where the C code screws up the memory, and I have no idea why Baedert decided to move perfectly good, memory-managed Vala code to C. |
I wonder whether there's anything specific and "unusual"* about the accounts that you're looking at. Does it happen when you look at RTs on my account? I'm wondering whether there might be accents or emoji or something that we're not handling correctly that's corrupting data that's making it fail, and that's why I don't see it.
|
Adding another data point: I also cannot reproduce the crash in my NixOS build from commit b11138f. |
@IBBoard Yup, I can click SwiftOnSecurity in this tweet and it crashes as previously. |
Okay, so we can rule out bad Unicode (non-ASCII or emoji) handling. |
Hello! I noticed this issue #448 which I also have. I installed the flatpak of cawbird and I can't reproduce the core dump issue there! Also embedded video now works. |
Thanks for the extra info. I'd be surprised if it is a GStreamer issue, as clicking an author profile link shouldn't interact with GStreamer. But there could be something odd in the Ubuntu packaging. |
Closing this issue as I've stopped using cawbird and I'm not driving debugging it. |
Describe the bug
Cawbird will dump core and crash when you click on the author field of a retweet in a user's Tweet page.
This is perfectly reproducible for me and happens every time I do this.
To Reproduce
Steps to reproduce the behavior:
(Note that if you click on the tweet first and then the author it works as you'd expect and want.)
Expected behavior
I expect to go to user B's Tweets.
System details:
Additional context
Here is the output of running
G_MESSAGES_DEBUG=cawbird cawbird
, slightly censored as to not reveal my account / followed accounts.output.txt
The text was updated successfully, but these errors were encountered: