Hi all,
I face a strange issue about pipeline stopping and cleanup afterwards(I'm running my pipelines on NVidia Jetson Nano as systemd service. ). If use the: systemctl stop myservice I see the following messages in the nvargus-daemon log: may 27 22:18:02 devhost nvargus-daemon[7110]: === gst-launch-1.0[7064]: Connection closed (7FB0DA91D0)=== gst-launch-1.0[7064]: WARNING: CameraProvider was not destroyed before client connection terminated.=== gst-launch-1.0[7064]: The client may have abnormally terminated. Destroying CameraProvider...=== gst-launch-1.0[7064]: CameraProvider destroyed (0x7facb8dee0)=== gst-launch-1.0[7064]: WARNING: Cleaning up 1 outstanding requests...=== gst-launch-1.0[7064]: WARNING: Cleaning up 1 outstanding streams...SCF: Error InvalidState: 5 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 306) may 27 22:18:02 devhost nvargus-daemon[7110]: SCF: Error InvalidState: (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50) may 27 22:18:02 devhost nvargus-daemon[7110]: === gst-launch-1.0[7064]: WARNING: Cleaning up 1 outstanding stream settings...=== gst-launch-1.0[7064]: WARNING: Cleaning up 1 outstanding sessions...(NvCameraUtils) Error InvalidState: Mutex not initialized (/dvs/git/dirty/git-master_linux/camera/core_scf/src/services/gl/EGLStreamProducer.cpp:498) (in Mutex.cpp, function lock(), line 79) may 27 22:18:02 devhost nvargus-daemon[7110]: SCF: Error BadParameter: Buffer is not pending (in src/services/gl/EGLStreamProducer.cpp, function presentBufferInternal(), line 502) may 27 22:18:02 devhost nvargus-daemon[7110]: (NvCameraUtils) Error InvalidState: Mutex has not been initialized (in Mutex.cpp, function unlock(), line 88) So the connection was not cleaned up, which caused if the pipeline was not stopped properly. The strange thing is if I run the pipeline directly from the terminal and hit Ctrl-C the cleanup is done and I don't get any error messages. The cleanup is also fine when I send the SIGINT signal to the process directly: kill -2 <PID> But if I try to automate this by adding: ExecStop=/bin/kill -2 -$MAINPID Or even to get the PID from 'ps' output: kill -2 $( ps aux | grep myscript.sh | grep "sensor-id=0" | awk '{print $2}') The cleanup not happens and the nvargus-daemon has to be restarted. (I even tried to move this stopping logic to separate script and call that from the ExecStop but its still not ok). So it seem like that is connected somehow to the systemd service, if I use the standart stop/restart commands the connections are not cleaned up. Do you have any idea what can be behind this? What am I doing wrong? Thanks! Bests, Peter _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |