If Gabble gets a presence with an unknown caps node, it sends a disco query. If the contact then sends an unavailable presence, Gabble removes the contact from the presence cache. But if the pending reply to the disco arrives successfully (which seems improbable until you remember that invisible exists), Gabble crashes, because the disco reply code assumes the contact is in the presence cache. Test case and fix to follow.
Here's a branch which fixes this issue, adds a test case, and does a little refactoring while it's there. This issue only affects the unstable branch.
mmmmm mmmmmm mmmmm m m mmmmm mmmm mmmm mmmmm mmmm mm m # "# # # "# ## ## # #" " #" " # m" "m #"m # #mmm#" #mmmmm #mmmm" # ## # # "#mmm "#mmm # # # # #m # # # # "m # "" # # "# "# # # # # # # # #mmmmm # " # # mm#mm "mmm#" "mmm#" mm#mm #mm# # ## mmmmmmm mmmm m m mmmmmm mmmmm mmm mmmmmm # m" "m ## ## # # "# m" " # # # # # ## # #mmmmm #mmmm" # mm #mmmmm # # # # "" # # # "m # # # # #mm# # # #mmmmm # " "mmm" #mmmmm mmm mmmmm mm mm mmmmmmmm mmmmmm mmmm m" " # "# ## #"m # # # # "m # mm #mmmm" # # # #m # # #mmmmm # # # # # "m #mm# # # # # # # # "mmm" # " # # # ## # #mmmmm #mmm"
╺┳╸╻ ╻┏━┓┏┓╻╻┏ ┏━┓╻ ╻╺┳╸ ╻ ╻╻╻ ╻ ┃ ┣━┫┣━┫┃┗┫┣┻┓┗━┓╹ ┃ ┃ ┃╻┃┃┃ ┃ ╹ ╹ ╹╹ ╹╹ ╹╹ ╹┗━┛╹ ╹ ╹ ┗┻┛╹┗━╸┗━╸ ┏┓ ┏━╸ ╻┏┓╻ ┏━┓ ╺┓ ╺┓ ┏━┓ ┣┻┓┣╸ ┃┃┗┫ ┃┃┃ ┃ ┃ ┏━┛ ┗━┛┗━╸ ╹╹ ╹ ┗━┛╹╺┻╸╺┻╸╹┗━╸
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.