majn / telegram-purple

Adds support for Telegram to Pidgin, Adium, Finch and other Libpurple based messengers.
GNU General Public License v2.0
734 stars 81 forks source link

Crashes and disconnectons when downloading a lot of history on a new machine #191

Open tremby opened 8 years ago

tremby commented 8 years ago

I just installed this on a new machine, after using it happily on my laptop for some time. When first activating the plugin on this new machine there were multiple issues. The plugin lost its connection multiple times, a huge number of popups appeared offering to download files (which had been sent in old conversations), Pidgin crashed multiple times. On each retry it appeared to be getting newer and newer history, and eventually now that presumably it has all the history, it is acting just fine.

I imagine if I were to delete the state files etc this would all happen again.

Pidgin 2.10.11 (libpurple 2.10.11) telegram-purple master at time of writing, freshly compiled right now.

majn commented 8 years ago

I imagine if I were to delete the state files etc this would all happen again.

It shouldn't fetch any old history on a new login, unless you've activated the option to do so. Did you?

tremby commented 8 years ago

Hm, interesting. I don't know. I copied over settings (but not the telegram directory) from my laptop. I'll look at the settings now...

tremby commented 8 years ago

Yes, that was checked.

This still looks like a bug to me -- it should be crashing and disconnecting even when that's checked.

majn commented 8 years ago

it should be crashing and disconnecting even when that's checked.

You are right, it shouldn't crash. Did you set the threshold for receiving old messages to unlimited (0 days)? This would mean loading all pictures/messages since the beginning of time and writing them into a conversation, which most libpurple clients will not handle in a very "efficient" way, if they handle it at all.

This still looks like a bug to me

If you have any reports of the crashs happening I will look into them.

tremby commented 8 years ago

It was set to 14 days, but I guess I'm a pretty heavy user.

Come to think of it, I could have sworn I saw messages from november streaming through. Perhaps that limit is broken?

I'm afraid I don't have stack traces or anything.

It's not convenient for me to test this again right now (I imagine I could move the telegram directory away temporarily to retry). If you would like me to, I can try to get to this when I find time.

majn commented 8 years ago

Come to think of it, I could have sworn I saw messages from November streaming through. Perhaps that limit is broken?

It still fetches all old messages, it just won't load the pictures or display them in a conversation or do any other heavy tasks. Its one of the reasons why I have removed that option completely in the current dev branch and will provide other ways to fetch history soon.

It's not convenient for me to test this again right now (I imagine I could move the telegram directory away temporarily to retry). If you would like me to, I can try to get to this when I find time.

If you find the time to start pidgin with GDB and do it again to collect a backtrace, that would be great. I usually test this option and it works even for my history of about 30000 messages (albeit being very slow). https://developer.pidgin.im/wiki/GetABacktrace

tremby commented 8 years ago

I haven't managed to test properly yet, but just logged in at work for the first time in a while, where I use Finch rather than Pidgin. It downloaded a bunch of history and crashed with the following message:

*** Error in `finch': corrupted double-linked list: 0x00007f33633811f0 ***