Python process exits with code 0xC0000374

Hi,

I just updated the ZED SDK on windows 10 from 3.3.1 to 3.5.0, CUDA 10.2.
At first, I had to update numpy, with 18.1 it did not work anymore after the update.
Now with 1.21.0, the program starts up again. Python version is 3.7.
But after a few seconds of stream reception from JetsonNano, I get:
python process finished with exit code 0xC0000374.
According to an internet search, this is a heap corruption.
I never had that with the old 3.3.1 setup.
I did not change anything else in my code (no, really not), and also the SW on the JetsonNanos was not touched.
Anyone else having the same? Can the support try to reproduce?
Best regards,
Stephan

Hi @Stephan,

Sorry for the late reply ! Could you please share a code snippet in order for us to replicate your issue ?
Also, can you tell us what ZED SDK/JetPack versions you are using on your Jetson ?

Thanks in advance

Hi,

the JetsonNanos run ZED SDK 3.3.0 (streaming sender example, switched to H.265 10000baud) on JP4.4.

Code snippet:

    init = sl.InitParameters()
    init.camera_resolution = sl.RESOLUTION.HD720
    init.camera_fps = 60
    init.depth_mode = sl.DEPTH_MODE.NONE

    index = 0
    failure = False
    for ip in self.ip_list:
        init.set_from_stream(ip, 1234)
        self.zed_list.append(sl.Camera())
        self.timestamp_list.append(0)
        self.framedrop_list.append(0)
        self.frame_dump.append(0)
        print("Opening ZED Camera {}...".format(ip))
        status = self.zed_list[index].open(init)
        if status != sl.ERROR_CODE.SUCCESS:
            print("ZED {} {} {}".format(index, self.ip_list[index], repr(status)))
            failure = True

        index = index+1

    for index in range(0, len(self.zed_list)):
        self.thread_list.append(threading.Thread(target=self.grab_run, args=(index,)))
        self.thread_list[index].start()

with

the thread function used for each camera

def grab_run(self, index):
    runtime = sl.RuntimeParameters()
    runtime.enable_depth = False
    while not self.stop_signal:
        err = self.zed_list[index].grab(runtime)
        if err == sl.ERROR_CODE.SUCCESS:
            self.timestamp_list[index] = self.zed_list[index].get_timestamp(sl.TIME_REFERENCE.IMAGE).get_microseconds()
            self.framedrop_list[index] = self.zed_list[index].get_frame_dropped_count()
        else:
            print("ZED {} ERROR {}".format(index, repr(err)))
            self.stop_signal = True
            return -1

        time.sleep(0.005)  # 5ms

    return 0

Hi,
I updated the JetsonNanos to 3.5.0 (still JP4.4). After that I was unable to connect with my python app (open() just returns failure, no specific error code and no other message is popping up which could direct me somewhere).
So I tried to connect with the pre compiled streaming_receiver example. This one crashes too (windows popup: ‘the program stopped working’).
Fun fact: I tried with the unchanged streaming_sender example, and could not see a crash of the receiver so far. Only with my change in the sender to H.265@10000baud I see the receiver crashing.
GPU: Nividia Quadro P2200, Cuda 10.2.
I hope that with this info you are able to reproduce the issue.
Regarding the unability to connect from python 3.5.0 to jetson 3.5.0, I have no idea yet how to procede.
Best regards,
Stephan

Okay, please forget about the connection issue from my python scripts, I changed the port but in python only changed it in the wrong location.
The crash however still occurs, I retested again, I now see crashes with H.264 as well, also when using the plain python streaming_receiver.py from your sample programs.

Hi @Stephan,

Thanks for the inputs, we’ll investigate this issue and will get back to you when we have more elements.
In the meantime, if it is possible for you, could you try out the C++ streaming sample and tell us if you experience a similar behaviour ?

In a previous reply I wrote:

There I was referring to the ZED_Streaming_Receiver.exe which comes with the ZED SDK installation, I assume this is just a compiled version of the cpp example. Sorry for being too unprecise.

Thanks for picking up the topic, looking forward to your results.

So, I have read the 3.5.4 release notes and found this:

Fixed potential memory leak on streaming module (receiver side).

I have to add the information that I also upgraded to CUDA11.0 to use the recommended CUDA version.

So with ZED 3.5.4 and CUDA 11.0 I can confirm that the issue is fixed. Thank you!

1 Like

Sry, I did not test enough. It is still crashing after a while ( less than 1 minute).
Unmodified ZED_Streaming_Sender example on JP4.5 with ZED 3.5.4, unmodified windows 10 CUDA11.0 ZED_Streaming_Receiver from C:\Program Files (x86)\ZED SDK\samples\bin
The Streaming_Receiver just exits without any error message.
My Python app still shows:

Process finished with exit code -1073740940 (0xC0000374)