mongosniff crashes on start

Bug #1584431 reported by ahsdkjhkbvnmxcv
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mongodb (Ubuntu)
Fix Released
Medium
Joshua Powers
Xenial
Won't Fix
Medium
Joshua Powers
Yakkety
Won't Fix
Medium
Joshua Powers

Bug Description

== Begin SRU Template ==
[Impact]

 * mongosniff crashes when it receives messages with no namespace. The result is that a user cannot even press only the enter key without the mongosniff application crashing.
* mongosniff in Xenial and Yakkety is essentially broken currently because of a check in the code that gets the message namespace, but if there is no namespace it crashes.

[Test Case]

 * lxc launch ubuntu-daily:xenial xenial
 * lxc exec xenial bash
 * apt install mongodb
 * mongosniff --source NET lo
 * # Open a 2nd terminal and run the following
 * lxc exec xenial bash
 * mongo
 * # press enter a few times or type 'help'
 * # Observe mongosniff abort, with a core dump, in the first window

[Regression Potential]

* Users currently experiencing this issue would be expecting a SRU fix to come from us as the application is broken in a major way.
* The only work around it would would require rebuilding mongodb from source with the fix to resolve the issue.
* The change was limited to the mongosniff source code only.

[Other Info]

Ubuntu:
* Xenial x64

Packages:
#user@localhost:~$ for i in `dpkg --get-selections|grep -v deinstall|grep mongo|cut -f1`; do echo $i `sudo apt-cache show $i|sed -n -e 's/^.*Version: 1://p'`; done
* mongodb 2.6.10-0ubuntu1
* mongodb-clients 2.6.10-0ubuntu1
* mongodb-server 2.6.10-0ubuntu1

----
Steps to reproduce:

1. start service
2. start sniffer
3. start shell
4. crash sniffer
---

user@localhost:~$ sudo service mongodb start

user@localhost:~$ mongo
MongoDB shell version: 2.6.10
connecting to: test

(...)

user@localhost:~$ sudo mongosniff --source NET lo
sniffing... 27017
127.0.0.1:37522 -->> 127.0.0.1:27017 admin.$cmd 60 bytes id:0 0
 query: { whatsmyuri: 1 } ntoreturn: 1 ntoskip: 0
2016-05-22T01:26:35.545-0400 Assertion failure messageShouldHaveNs() src/mongo/db/dbmessage.cpp 82
2016-05-22T01:26:35.553-0400 0xea35a9 0xe397cf 0xe14772 0x86aca8 0x615c13 0x7f614d369ef6 0x7f614d36e9d1 0x7f614d3731fd 0x616a5a 0x5e57a9 0x7f614c71a830 0x614389
 mongosniff(_ZN5mongo15printStackTraceERSo+0x39) [0xea35a9]
 mongosniff(_ZN5mongo10logContextEPKc+0x21f) [0xe397cf]
 mongosniff(_ZN5mongo12verifyFailedEPKcS1_j+0x142) [0xe14772]
 mongosniff() [0x86aca8]
 mongosniff(_Z10got_packetPhPK11pcap_pkthdrPKh+0x573) [0x615c13]
 /usr/lib/x86_64-linux-gnu/libpcap.so.0.8(+0x5ef6) [0x7f614d369ef6]
 /usr/lib/x86_64-linux-gnu/libpcap.so.0.8(+0xa9d1) [0x7f614d36e9d1]
 /usr/lib/x86_64-linux-gnu/libpcap.so.0.8(pcap_loop+0x5d) [0x7f614d3731fd]
 mongosniff(_Z8toolMainiPPcS0_+0x69a) [0x616a5a]
 mongosniff(main+0x9) [0x5e57a9]
 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f614c71a830]
 mongosniff(_start+0x29) [0x614389]
terminate called after throwing an instance of 'mongo::AssertionException'
  what(): assertion src/mongo/db/dbmessage.cpp:82
Aborted (core dumped)
user@localhost:~$

Revision history for this message
ahsdkjhkbvnmxcv (ahsdkjhkbvnmxcv) wrote :
Joshua Powers (powersj)
Changed in mongodb (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Joshua Powers (powersj) wrote :

Hi! Thanks for the report. I tried to reproduce this today and was able to with your comments above. I did have to execute something on the mongo shell and then got the crash.

I will nominate this for Trusty, Xenial, and Yakkety as it is fixed in Zesty.

Changed in mongodb (Ubuntu):
status: Triaged → Fix Released
assignee: nobody → Joshua Powers (powersj)
Joshua Powers (powersj)
Changed in mongodb (Ubuntu Trusty):
status: New → Invalid
Changed in mongodb (Ubuntu Xenial):
status: New → In Progress
Changed in mongodb (Ubuntu Yakkety):
status: New → In Progress
Changed in mongodb (Ubuntu Trusty):
importance: Undecided → Medium
Changed in mongodb (Ubuntu Xenial):
importance: Undecided → Medium
Changed in mongodb (Ubuntu Yakkety):
importance: Undecided → Medium
Changed in mongodb (Ubuntu Trusty):
assignee: nobody → Joshua Powers (powersj)
Changed in mongodb (Ubuntu Yakkety):
assignee: nobody → Joshua Powers (powersj)
Changed in mongodb (Ubuntu Xenial):
assignee: nobody → Joshua Powers (powersj)
Joshua Powers (powersj)
description: updated
description: updated
Mathew Hodson (mhodson)
no longer affects: mongodb (Ubuntu Trusty)
Revision history for this message
Joshua Powers (powersj) wrote :

I believe next steps here are an upload to proposed and then sru verification. Can someone confirm?

Revision history for this message
Robie Basak (racb) wrote :

I've just got round to this again - sorry for the delay.

AFAICT, the quilt patch doesn't apply cleanly neither in Xenial nor in Yakkety. I don't know if I have a tooling problem here though. I don't remember if I verified this when I reviewed. Please could you take a look?

Revision history for this message
Joshua Powers (powersj) wrote :

Both merge requests updated with fixed patches for when other patches applied.

Revision history for this message
Joshua Powers (powersj) wrote :

Marking yakkety invalid as it is now EOL. Working to get xenial merge unstuck.

Changed in mongodb (Ubuntu Yakkety):
status: In Progress → Invalid
Revision history for this message
Nish Aravamudan (nacc) wrote :

Sponsored via git workflow.

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello ahsdkjhkbvnmxcv, or anyone else affected,

Accepted mongodb into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/mongodb/1:2.6.10-0ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in mongodb (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-xenial
Revision history for this message
Joshua Powers (powersj) wrote :

Looks like the test starting mongod during the build on armhf failed with:

[Errno 111] Connection refused
[Errno 111] Connection refused
timeout starting mongod

https://launchpadlibrarian.net/332787821/buildlog_ubuntu-xenial-armhf.mongodb_1%3A2.6.10-0ubuntu1.1_BUILDING.txt.gz

This succeeds on every other arch and I did not see any issues with it on the latest rebuild document:

http://qa.ubuntuwire.org/ftbfs/rebuilds/test-rebuild-20160614-xenial.html

Can a rebuild be attempted?

Mathew Hodson (mhodson)
Changed in mongodb (Ubuntu Yakkety):
status: Invalid → Won't Fix
Revision history for this message
Brian Murray (brian-murray) wrote :

I've retried the build just now.

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

The package still fails to build from source. Seeing that the bug got no attention for almost a year, removing it from -proposed as per SRU policy.

Changed in mongodb (Ubuntu Xenial):
status: Fix Committed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.