Comment 16 for bug 1640518

Revision history for this message
Andrew Morrow (acmorrow) wrote :

I tried valgrind as suggested above.

By adding --show-mismatched-frees=no and removing --track-origins=yes I was able to get the process to start up without a lot of false positives. However, the server process fails to open its listening socket, because valgrind reports an unsupported syscall:

[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.496+0000 s40019| --17827-- WARNING: unhandled ppc64le-linux syscall: 326
[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.496+0000 s40019| --17827-- You may be able to write your own handler.
[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.496+0000 s40019| --17827-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.497+0000 s40019| --17827-- Nevertheless we consider this a bug. Please report
[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.497+0000 s40019| --17827-- it at http://valgrind.org/support/bug_reports.html.
[js_test:fsm_all_sharded_replication] 2016-11-10T14:24:04.509+0000 s40019| 2016-11-10T14:24:04.509+0000 I - [mongosMain] Assertion: 15863:listen(): invalid socket? Function not implemented src/mongo/util/net/listen.cpp 184

The code around listen.cpp:184 looks like:

    182 SOCKET sock = ::socket(me.getType(), SOCK_STREAM, 0);
    183 ScopeGuard socketGuard = MakeGuard(&closesocket, sock);
    184 massert(15863,
    185 str::stream() << "listen(): invalid socket? " << errnoWithDescription(),
    186 sock >= 0);

It looks as if valgrind on ppc64le doesn't support the socket syscall? Note that I happened to be subscribed to the valgrind-developers list so I saw the other post there, and I've followed up with this same information already.

That discussion is here: https://sourceforge.net/p/valgrind/mailman/message/35483420/

In any event, it doesn't look like valgrind is going to be able to help here.