dm0- / window_merge

A Pidgin plugin that merges the Buddy List window with a conversation window
GNU General Public License v3.0
74 stars 10 forks source link

Segfault on Ubuntu 12.04 LTS (x64) #5

Closed mpkossen closed 12 years ago

mpkossen commented 12 years ago

I'm getting a segfault on Ubuntu 12.04 LTS (x64) with the following plugins enabled:

Pidgin: 1:2.10.3-0ubuntu1 Pidgin Plugin Pack: 2.6.3-2

If there's anything more I could do to provide more data, let me know.

dm0- commented 12 years ago

Thanks for the report. The fix is committed for a segfault I encountered. I will close this issue for now since I can run those plugins without Pidgin crashing. Let me know if you still see problems--I don't normally use those plugins, so I just may not be triggering other issues.

mpkossen commented 12 years ago

Thanks! Will try it out soon.

rmsr commented 12 years ago

On Ubuntu 12.04 amd64, with a blank config (and all plugin-related packages removed from the system, just to be sure) a segfault still occurs when I enable this plugin. It seems to be a null pointer dereference at pidgin/gtkconv.c line 3193 because at regenerate_options_items line 3330, pidgin_conv_window_get_active_gtkconv returns NULL. I don't know enough about Pidgin or gtk to narrow this further... (the same segfault occurs with my usual selection of accounts and plugins, too, with or without a chat window open)

dm0- commented 12 years ago

Thanks for reporting. I have not yet run into a crash with a gtkconv being NULL. (It's usually gtkconv->active_conv that is the problem.) Can you provide a backtrace so I can try to reproduce the code path that arrives at this problem?

You should be able to get this information by running Pidgin in a debugger.

gdb pidgin

It may ask you to install debug packages to display a useful backtrace. When ready, start running Pidgin in the debugger.

r

Then use Pidgin normally until you encounter the crash. The debugger should have a prompt again, where you can request a backtrace and quit.

bt
q

Also, if you haven't already done so, can you check if the problem occurs when you leave Pidgin generate a fresh config directory? Something like this should do it:

mv ~/.purple ~/backup
mkdir -p ~/.purple/plugins
cp $builddir/.libs/window_merge.so ~/.purple/plugins/
gdb pidgin

(Afterwards, the .purple directory can be removed and replaced with its backup.)

Edit: I've managed to build and run the plugin with a fresh ~/.purple directory on Ubuntu 12.04 amd64. It was built with a bare "./configure" and "make". I think I'll need the backtrace to determine what is triggering the problematic code path--unless you can describe a specific action that triggers it. (I was assuming from your description that it crashes immediately when enabled.)