orbbec / OrbbecSDK

Orbbec SDK C/C++ base core lib
https://www.orbbec3d.com/
Other
97 stars 17 forks source link

Femto Bolt: Crash after "got nvram data failed.retrying..." #73

Open puzzlepaint opened 6 months ago

puzzlepaint commented 6 months ago

Hi, with a Femto Bolt device I am getting an issue that it sometimes fails to open. The issue can be reproduced with OrbbecViewer as follows:

Roughly every 3rd time, OrbbecViewer will fail to open, with the following log output:

2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@18] **********************************************
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@19]  OrbbecViewer launched! Welcome!! 
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@20]   - Version: V1.9.5
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@21]   - Author: 
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@22]   - E-Mail: 
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@23]   - Company: orbbec
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@24]   - Website: http://www.orbbec.com.cn/
2024-03-23 13:14:22.156 INFO  [11368] [loggerInit@25] **********************************************
[03/23 13:14:22.285349][info][11368][Context.cpp:69] Context created with config: /home/thomas/Downloads/OrbbecViewer_v1.9.5_202403050503_linux_x64_release/OrbbecSDKConfig_v1.0.xml
[03/23 13:14:22.285362][info][11368][Context.cpp:74] Context work_dir=/home/thomas/Downloads/OrbbecViewer_v1.9.5_202403050503_linux_x64_release
[03/23 13:14:22.285368][info][11368][Context.cpp:77]    - SDK version: 1.9.5
[03/23 13:14:22.285373][info][11368][Context.cpp:78]    - SDK stage version: main
[03/23 13:14:22.285381][info][11368][Context.cpp:82] get config EnumerateNetDevice:false
[03/23 13:14:22.285390][info][11368][LinuxPal.cpp:38] createObPal: create LinuxPal!
[03/23 13:14:22.383854][info][11368][LinuxPal.cpp:112] Create PollingDeviceWatcher!
[03/23 13:14:22.383884][info][11368][DeviceManager.cpp:15] Current found device(s): (1)
[03/23 13:14:22.383890][info][11368][DeviceManager.cpp:24]  - Name: Femto Bolt, PID: 0x066b, SN/ID: CL8FC3100E2, Connection: USB3.1
[03/23 13:14:22.383916][info][11368][DeviceManager.cpp:310] Enable net device enumeration: true
[03/23 13:14:22.384039][info][11368][GVCPClient.cpp:223] bind 0.0.0.0:0
[03/23 13:14:23.385369][info][11368][DeviceManager.cpp:15] Current device(s) list: (1)
[03/23 13:14:23.385388][info][11368][DeviceManager.cpp:24]  - Name: Femto Bolt, PID: 0x066b, SN/ID: CL8FC3100E2, Connection: USB3.1
[03/23 13:14:23.385451][info][11368][FemtoBoltUvcDevice.cpp:23] FemtoBoltUvcDevice init ...
[03/23 13:14:23.385505][info][11368][FemtoBoltUvcDevice.cpp:120] Create command start!
[03/23 13:14:23.386569][info][11368][MSDEConverterDevice.cpp:721] Succeed to load depth engine plugin
[03/23 13:14:23.592557][info][11368][FemtoBoltUvcDevice.cpp:271] Create command done!
[03/23 13:14:23.592576][info][11368][FemtoBoltUvcDevice.cpp:431] init sensor map start!
[03/23 13:14:23.592589][info][11368][FemtoBoltUvcDevice.cpp:458] init sensor map done!
[03/23 13:14:23.593259][info][11368][AbstractDevice.cpp:124]    - Firmware version: 1.1.0
[03/23 13:14:23.593308][info][11368][FemtoBoltUvcDevice.cpp:275] Init depth process param start!
[03/23 13:14:23.934336][info][11368][MSDEConverterDevice.cpp:781] got nvram data failed.retrying...

[The "got nvram data failed.retrying..." line repeats some 10 thousand times ...]

[03/23 13:14:28.428688][info][11368][MSDEConverterDevice.cpp:781] got nvram data failed.retrying...
[03/23 13:14:28.428746][info][11368][MSDEConverterDevice.cpp:772] got nvram data succeed.
[03/23 13:14:28.428767][info][11368][ObUvcDevice.cpp:112] endpoint:130
[03/23 13:14:28.428828][info][11368][ObUvcDevice.cpp:118] libusb_clear_halt done, endpoint:130
munmap_chunk(): invalid pointer

This issue also happens when allocating an ob::Device in my application that uses the Orbbec SDK.

I am on Linux, with the Orbbec SDK V1.9.5, and firmware version 1.1.0 for the Femto Bolt. Edit: In case it matters, the camera is connected to the PC with the original USB cable.

puzzlepaint commented 6 months ago

I was able to test on another PC as well now using Windows as operating system, and the issue does not seem to occur there. But this remains a large issue on the Linux PC. I have to constantly unplug and reinsert the cameras there to make them work (since the crash does not seem to happen the first time a camera is acquired after being plugged in).

zhonghong322 commented 6 months ago

Could you provide me with the specifications of your computer, such as CPU and GPU models? We'd like to try reproducing the issue.

puzzlepaint commented 6 months ago

The specifications of the PC on which I observed the crashes are:

CPU: AMD Ryzen 9 7950X 16-Core Processor
RAM: 64 GB
GPU: NVIDIA GeForce RTX 4090
OS: Ubuntu 22.04.4 LTS (Kernel Version: 6.5.0-26-generic (64-bit))
GestureArtAndDesign commented 3 months ago

I also have this issue. I have experienced it on two separate Windows 11 machines running latest 1.1.2 Femto Bolt firmware. One machine is an Nvidia GPU and the other is an AMD GPU. Both GPUs are well above minimal spec.

For me it is always the second of two Femto Bolts failing to start.

nwrkbiz commented 3 months ago

Hi, we have the same problem using the Orbbec SDK. When allocating a new device this error occurs. Our specs:

CPU: AMD Ryzen Threadripper 1950X 16-Core Processor
GPU: Nvidia GA102 GeForce RTX 3090
RAM: 64 GB
OS: Ubuntu 22.04.4 LTS

EDIT: Powercycling the device helps until the next program restart.