My pipeline across two cameras works fine when starting recording. However, when I try to stop the pipeline, after emitting an EOS signal manually on stop and catching it I see this:
2019-08-29 10:17:40,305 DEBUG: Caught EOS event...
GST_ARGUS: Cleaning up
GST_ARGUS:
PowerServiceHwVic::cleanupResources
CONSUMER: Done Success
GST_ARGUS: Done Success
GST_ARGUS: Cleaning up
The log message with the timestamp is my own application debug logging output. Here are the exact lines:
logger.debug("Caught EOS event...")
self.recorder_pipeline.set_state(Gst.State.NULL)
logger.debug("Set pipeline to NULL state...")
The last few debug lines from GStreamer are:
0:00:15.035895991 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;01m bin gstbin.c:4054:gst_bin_handle_message_func:<pipeline0>^[[00m posting message upward
0:00:15.035952119 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;43m GST_BUS gstbus.c:318:gst_bus_post:<bus2>^[[00m [msg 0x27981400] posting on bus stream-status message: 0x27981400, time 99:99:99.999999999, seq-num 280, element 'src', GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_LEAVE, owner=(GstElement)"\(GstNvArgusCameraSrc\)\ nvcam0", object=(GstTask)"\(GstTask\)\ nvcam0:src";
0:00:15.036012310 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;43m GST_BUS gstbus.c:357:gst_bus_post:<bus2>^[[00m [msg 0x27981400] pushing on async queue
0:00:15.036046678 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;43m GST_BUS gstbus.c:360:gst_bus_post:<bus2>^[[00m [msg 0x27981400] pushed on async queue
0:00:15.036080278 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;43m GST_BUS gstbus.c:353:gst_bus_post:<bus1>^[[00m [msg 0x27981400] dropped
0:00:15.036113110 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00;43m GST_BUS gstbus.c:353:gst_bus_post:<bus0>^[[00m [msg 0x27981400] dropped
0:00:15.036149749 ^[[336m17765^[[00m 0x27863680 ^[[37mDEBUG ^[[00m ^[[00m task gsttask.c:359:gst_task_func:^[[00m Exit task 0x278884d0, thread 0x27863680
0:00:15.036248564 ^[[336m17765^[[00m 0x27284930 ^[[37mDEBUG ^[[00m ^[[00m task gsttask.c:815:gst_task_join:<nvcam0:src>^[[00m Joining task 0x278884d0, thread 0x27284930
0:00:15.036319540 ^[[336m17765^[[00m 0x27284930 ^[[37mDEBUG ^[[00m ^[[00m task gsttask.c:845:gst_task_join:<nvcam0:src>^[[00m Joined task 0x278884d0
0:00:15.036346292 ^[[336m17765^[[00m 0x27284930 ^[[37mDEBUG ^[[00m ^[[00m basesrc gstbasesrc.c:3679:gst_base_src_set_flushing:<nvcam0>^[[00m flushing 0
strace shows my process is waiting on a futex indefinitely:
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, "\t
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
66
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
", 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, "0K060202114717", 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, "\t
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
67
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
", 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, "0U060202114717", 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, "7
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
70
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
futex(0x4714538, FUTEX_WAIT_PRIVATE, 5, NULL) = 0
futex(0x4628200, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x46280c8, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\266\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10K\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999998144}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\t\0\0\0\267\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10U\20\360\320\221\314\371\17”, 9, MSG_NOSIGNAL, NULL, 0) = 9
futex(0x4724528, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999488}) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
sendto(37, “\27\0\0\0\270\0\0\0”, 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, “\10V\20\360\320\221\314\371\17\2722\v\20\377\377\377\377\377\377\377\377\377\1”, 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
", 8, MSG_NOSIGNAL, NULL, 0) = 8
sendto(37, "0V060202114717722\v0777777777777777777", 23, MSG_NOSIGNAL, NULL, 0) = 23
futex(0x47fd868, FUTEX_WAIT_PRIVATE, 0, {tv_sec=59, tv_nsec=999999456}) = 0
futex(0x7f40001190, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4628458, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x4628448, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f677fe2c0, FUTEX_WAIT, 17962, NULL
This worked fine on R28.2.1 but now hangs on set_state() indefinitely and my application goes gray waiting on this call to come back.
This seems like regression. The main change in my pipeline was moving from nvcamerasrc to nvarguscamerasrc. That’s about it.
What am I doing wrong?
UPDATE: If I run this same pipeline using gst-launch-1.0 and let it record for a while and hit Ctrl-C I can also get it to hang on a futex. This definitely seems like breakage to me.
gst-launch-1.0 matroskamux name=muxer streamable=true ! multifilesink name=mfsink post-messages=true next-file=5 max-file-duration=60000000000 location=capture_%08d.mkv nvarguscamerasrc do-timestamp=true awblock=true aelock=true sensor-id=0 name=nvcam0 ! video/x-raw(memory:NVMM), width=(int)4104, height=(int)3046, framerate=(fraction)30/1 ! nvvidconv flip-method=2 ! video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)I420 ! omxh264enc control-rate=2 profile=8 bitrate=30000000 ! video/x-h264, stream-format=(string)byte-stream ! h264parse ! identity name=tap0 ! muxer.video_0 nvarguscamerasrc do-timestamp=true awblock=true aelock=true sensor-id=1 name=nvcam1 ! video/x-raw(memory:NVMM), width=(int)4104, height=(int)3046, framerate=(fraction)30/1 ! nvvidconv flip-method=2 ! video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)I420 ! omxh264enc control-rate=2 profile=8 bitrate=30000000 ! video/x-h264, stream-format=(string)byte-stream ! h264parse ! identity name=tap1 ! muxer.video_1
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Framerate set to : 30 at NvxVideoEncoderSetParameterFramerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
NvMMLiteBlockCreate : Block : BlockType = 4
Setting pipeline to PLAYING ...
H264: Profile = 100, Level = 40
H264: Profile = 100, Level = 40
New clock: GstSystemClock
GST_ARGUS: Creating output stream
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4000 x 3000 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 251.188705; Exposure Range min 52000, max 660000000;
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Running with following settings:
Camera index = 1
Camera mode = 0
Output Stream W = 4000 H = 3000
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: PowerService: requested_clock_Hz=164072784
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4000 x 3000 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 251.188705; Exposure Range min 52000, max 660000000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 4000 H = 3000
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:01:32.894848900
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
GST_ARGUS:
PowerServiceHwVic::cleanupResources