bitlbee/bitlbee-facebook

Server disconnects, "fb_data_add_message: assertion 'FB_IS_DATA(fata)' failed"

Closed this issue · 5 comments

Recently I've been unable to use bitlbee-facebook properly. After connecting to the bitlbee server, my Facebook account is logged in and unread messages are fetched and displayed in their own channels (since I have show_unread on). Shortly after, however, I get disconnected from the bitlbee server. I get reconnected soon after, logging me in to my accounts and repeating the whole process.

There's not much warning in the &bitlbee channel:

23:56 <@root> facebook - Logging in: Connecting
23:56 <@root> facebook - Logging in: Logged in
23:56 -- irc: disconnected from server

The bitlbee service itself logs these lines as I get disconnected:

Aug 22 23:56:47 rivendell bitlbee[19031]: fb_data_add_message: assertion 'FB_IS_DATA(fata)' failed
Aug 22 23:56:47 rivendell bitlbee[19031]: fb_data_add_message: assertion 'FB_IS_DATA(fata)' failed

Preceding paste was from journalctl, but I observed the same logs when running sudo bitlbee -F -n manually as well.

Backtrace (pastebinned, 2740 lines): http://ix.io/1kZO
Notes:

  • Interestingly, I couldn't get the crash to reproduce with the flags -Dnv as stated in the wiki (Incidentally this may be the workaround I'm hoping for). My service uses -F -n and so I was able to reproduce the crash with flags -Fnv for the gdb invocation.
  • Passwords and secrets have been changed to REDACTED, as well as 4 instances of JSON detailing my Facebook contacts.

Bitlbee version output:

12:07 -- CTCP query to root: VERSION
12:07 -- CTCP reply from root: VERSION BitlBee 3.5.1

Distro: Arch Linux

How it was installed:

List of plugins installed or protocols used:

  • XMPP (with OTR support)
  • MQTT via bitlbee-facebook

That doesn't have a backtrace. The idea of using -D instead of -F is that with the latter a child process is created and gdb doesn't debug that one.

Given that you use arch linux, the coredumpctl method detailed in the same wiki page might be easier.

Otherwise, gdb -p <pid of child process>, wait for the crash and then type bt.

My bad. With coredumpctl: http://ix.io/1l0t

Closing because I've been using bitlbee-facebook without this issue for a quite a while now again.