bitlbee/bitlbee-facebook

Can't connect to facebook anymore: Failed to read fixed header

Closed this issue · 30 comments

I'm having this issue since 3 days or so.
Am I the only one?

BitlBee 3.5.1+20181003+develop+79-g8813282-git

I was using bitlbee-facebook compiled from source and had the issue then I tried the .deb, installed from bitlbee repo, and same issue.

strace while connecting to facebook: http://dpaste.com/16HPC7G

I'm using the same server for ZNC and many other services, there is no issue with the network.
If you need anything to debug the issue please let me know.

[16:05:38] (@bitlbee): facebook2 - Logging in: Connecting
[16:05:38] (@bitlbee): facebook2 - Login error: Failed to read fixed header
[16:05:38] (@bitlbee): facebook2 - Logging in: Signing off..
[16:05:39] (@bitlbee): facebook2 - Logging in: Reconnecting in 15 seconds..
[16:05:39] (@bitlbee): facebook - Logging in: Connecting
[16:05:39] (@bitlbee): facebook - Login error: Failed to read fixed header
[16:05:39] (@bitlbee): facebook - Logging in: Signing off..
[16:05:39] (@bitlbee): facebook - Logging in: Reconnecting in 15 seconds..
[16:05:53] (@bitlbee): facebook2 - Logging in: Fetching contacts
[16:05:54] (@bitlbee): facebook - Logging in: Fetching contacts
[16:05:55] (@bitlbee): facebook2 - Logging in: Connecting
[16:05:55] (@bitlbee): facebook - Logging in: Connecting
[16:05:55] (@bitlbee): facebook2 - Login error: Failed to read fixed header
[16:05:55] (@bitlbee): facebook2 - Logging in: Signing off..
[16:05:55] (@bitlbee): facebook2 - Logging in: Reconnecting in 45 seconds..
[16:05:55] (@bitlbee): facebook - Login error: Failed to read fixed header
[16:05:55] (@bitlbee): facebook - Logging in: Signing off..
[16:05:55] (@bitlbee): facebook - Logging in: Reconnecting in 45 seconds..

It look like I'm the only one?

fejjj commented

i have it too, after upgrading to ubuntu cosmic sunday night

fejjj commented

i have it too, after upgrading to ubuntu cosmic sunday night

BTW, @CryptoSiD how'd you add the repo?

I created /etc/apt/sources.list.d/bitlbee.list with "deb https://code.bitlbee.org/debian/develop/bionic/amd64/ ./" inside.

I use apt as I would do to install any package.

It look like the issue is related to 18.10 (cosmic) since I'm also on it... however it was working perfectly approximately 3-4 days before I opened this issue and I was already on cosmic.

fejjj commented

I upgraded to Fedora29, Seems I've encountered this issue as well.

dgw commented

It's interesting. My BitlBee server is still on Ubuntu 12.04 (I know…) and I've seen this a couple times after it gets disconnected. But another reconnection attempt always succeeds, so it might be a different thing.

Could this be related to this dequis/purple-facebook#410 ?

I would have to think it is. I recently had an ArchLinux upgrade where gnutls was updated from 3.5.19 to 3.6.5. I've been trying to figure out since why bitlbee-facebook was still working perfectly fine under FreeBSD but not arch, I think this may be the reason. FreeBSD is still using gnutls 3.5.19. For now.

I would have to think it is. I recently had an ArchLinux upgrade where gnutls was updated from 3.5.19 to 3.6.5. I've been trying to figure out since why bitlbee-facebook was still working perfectly fine under FreeBSD but not arch, I think this may be the reason. FreeBSD is still using gnutls 3.5.19. For now.

It make sens. The version of gnutls on Ubuntu 18.10 is 3.6.4.
I have a debian with Gnutls 3.5.9, I'm going to test tomorrow if bitlbee facebook work fine on this version.
If it's the case then the issue is most likely related gnutls 3.6.0+

Can confirm downgrading gnutls 3.6.5-1 → 3.5.19-2 on Arch mitigates this issue.

Hopefully the dev(s) know how to fix this. Unfortunately I'm just a noob :)

I have the same issue after updating arch.

This happens for me as well.

akorn commented

I was able to workaround this by rebuilding the libgnutls30 package with --with-default-priority-string=@SYSTEM added to the configure command line, and creating /etc/gnutls/default-priorities with the following contents:

SYSTEM=NORMAL:-VERS-SSL3.0:-VERS-TLS1.3:-VERS-TLS1.0:-VERS-DTLS1.0:-SHA1:-SIGN-RSA-SHA1:-SIGN-ECDSA-SHA1

(The problem is that GnuTLS and Facebook don't see eye to eye using TLS1.3. Disabling TLS1.3 is a workaround, but I found no other way to do it, because bitlbee doesn't allow you to customize cipher priorities via configuration.)

Sorry for the delay handling this. I still can't reproduce the issue (arch linux here too) but this commit from the 'development' branch is very likely to fix the issue: 4fb29aa - so please checkout that branch and build that.

I'm still experiencing the issue

Edit: I tried commit 4fb29aa

Hm. Please ensure bitlbee is fully restarted (restarting daemon and reconnecting client is usually enough, otherwise kill all processes and start it again). Shame about the change being small enough that there's no other way to tell it's running the new code...

... Killing the bitlbee and starting it again is truly obvious. Can I get an easy way to make this facebook module dump all debugging data? That's maybe the data that could be helpful to you.

EDIT: phone keyboard sucks ass.

You'd think so, but not properly restarting bitlbee after upgrades is an extremely common issue, doesn't hurt to check for it.

Debugging instructions at https://wiki.bitlbee.org/Debugging - I don't really expect a whole lot out of it though, the thing is failing at the socket read level which this debug doesn't have a lot of information about.

I've noticed before that bitlbee won't even stop properly using default systemd service, so I am confident that I've actually restarted it.

Speaking about debug logging, I managed to capture a huge log which unfortunately contains a huge amount of personal information. I guess I'm going to strip out everything sensituve and keep only relevant.

Here's the debug log: removed since it's unsafe

I removed the sensible parts, hopefully you won't need anything in this, it seemed to only list my facebook contacts.

Some access tokens in there, to be safe remove the relevant session (or all of them) from https://www.facebook.com/settings?tab=security&section=sessions&view

Sorry, I should probably have specified that posting them publicly is not a good idea, for purple-facebook i ask people to email the thing: https://github.com/dequis/purple-facebook/wiki/Debugging-Logs

And, yeah, that log wasn't very informative i'm afraid :(

Thanks for letting me know, I deleted all sessions :)

I removed a huge part of the logs, could it be helpful to have it?
It seemed useless to me but I'm just a noob :)

Okay I can now reproduce this thing (not very reliably but often enough) so I pushed c612d25 to both master/development branches, fixes the thing for me.

(Now to look into the other bugs that people started reporting recently, which may or may not affect you.)

Thanks a lot!

c612d25 fixed issue for me, I can chat again now.

Fixed for me too.

Released v1.2.0 with the fix for this

Note that the general error ("Failed to read fixed header") has many other causes unrelated to this issue so it might still appear here in the future.

If you're using v1.2.0 or higher and this happens (and it's not a network connectivity issue), please open another issue instead of adding comments here.