Driver aborted during execution of a bulk operation, which consists of a large number of upserts.
Console output:
2016/09/22 00:08:06.0861: [22725]: WARNING: stream: Failure to buffer 36 bytes: Failed to buffer 36 bytes within 300000 milliseconds. src/mongoc/mongoc-stream.c:152 mongoc_stream_writev(): precondition failed: stream Aborted (core dumped)
GDB backtrace:
Program terminated with signal SIGABRT, Aborted. #0 0x00007f8f3e215067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x00007f8f3e215067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007f8f3e216448 in __GI_abort () at abort.c:89 #2 0x0000000000d74cfe in mongoc_stream_writev (stream=<optimized out>, iov=<optimized out>, iovcnt=<optimized out>, timeout_msec=<optimized out>) at src/mongoc/mongoc-stream.c:153 #3 0x0000000000d75326 in _mongoc_stream_writev_full (stream=0x3f2b, stream@entry=0x7f8eb4006a40, iov=0x58c5, iovcnt=6, timeout_msec=300000, error=0x7f8dba711568) at src/mongoc/mongoc-stream.c:497 #4 0x0000000000d5fda0 in mongoc_cluster_run_command_internal (cluster=cluster@entry=0x7f8eb40029c0, stream=0x7f8eb4006a40, server_id=1, flags=flags@entry=MONGOC_QUERY_NONE, db_name=db_name@entry=0x7f8df2ed80d0 "some_db", command=command@entry=0x7f8e6effba80, monitored=true, host=0x7f8dbb193008, reply=0x7f8e6effbb00, error=0x7f8dba711568) at src/mongoc/mongoc-cluster.c:240 #5 0x0000000000d600c9 in mongoc_cluster_run_command_monitored (cluster=cluster@entry=0x7f8eb40029c0, server_stream=server_stream@entry=0x7f8db890c220, flags=flags@entry=MONGOC_QUERY_NONE, db_name=db_name@entry=0x7f8df2ed80d0 "some_db", command=command@entry=0x7f8e6effba80, reply=reply@entry=0x7f8e6effbb00, error=0x7f8dba711568) at src/mongoc/mongoc-cluster.c:377 #6 0x0000000000d7f9cd in _mongoc_write_command (command=command@entry=0x7f8dbbc14b00, client=client@entry=0x7f8eb40029b0, server_stream=server_stream@entry=0x7f8db890c220, database=database@entry=0x7f8df2ed80d0 "some_db", collection=<optimized out>, write_concern=<optimized out>, offset=<optimized out>, result=0x7f8dba7112e0, error=0x7f8dba711568) at src/mongoc/mongoc-write-command.c:1304 #7 0x0000000000d7fb2c in _mongoc_write_command_execute (command=0x7f8dbbc14b00, client=0x7f8eb40029b0, server_stream=0x7f8db890c220, database=0x7f8df2ed80d0 "some_db", collection=0x7f8df367afb0 "some_collection", write_concern=0x7f8dba711870, offset=37000, result=0x7f8dba7112e0) at src/mongoc/mongoc-write-command.c:1367 #8 0x0000000000d5c95a in mongoc_bulk_operation_execute (bulk=0x7f8dba711260, reply=0x58c5, error=0x6) at src/mongoc/mongoc-bulk-operation.c:451 ...
Note that we did not encounter any problem with this kind of operation and the driver has executed thousands of such operations successfully before the crash.
We noted a connectivity problem around the time the crash happened. A different thread that is monitoring database connectivity logged:
mongoc_cursor_next(some_collection): Failed to send "find" command with database "some_db": Failed to read 36 bytes from socket within 10000 milliseconds.
However, that thread did not crash the application and it does not perform bulk upserts but rather a simple finds.
- related to
-
CDRIVER-3195 Driver aborts during bulk write
- Closed