Sentinel segmentation fault after running voxl-uvc-server -v [camera id] -d
-
@AndriiHlyvko , we have gotten another report about this recently. It seem there is a bug in libuvc which has been fixed, but we are using older version of the library.
Inserting the following check at the line below has been reported to fix the issue:
if (strmh->got_bytes + data_len > strmh->cur_ctrl.dwMaxVideoFrameSize) { UVC_DEBUG("Transfer too large and will overflow the buffer. Dropping data!"); _uvc_swap_buffers(strmh); return; }here: https://github.com/modalai/libuvc/blob/3fb2d2fd31f215f76bd5d6782785385fd0927ce5/src/stream.c#L757
It seems the fix in the official libuvc release is here:
https://github.com/libuvc/libuvc/blob/master/src/stream.c#L779
https://github.com/libuvc/libuvc/blob/master/src/stream.c#L787We have not fixed this officially, please look at the code snippet i provided official fix and implement something similar until we fix it.
Alex
Thanks @Alex-Kushleyev . Do you know if there are any differences between using the voxl fork of libuvc vs compiling the master libuvc? I was thinking of just building the master libuvc but I am not sure if modalai did any changes to it.
-
Thanks @Alex-Kushleyev . Do you know if there are any differences between using the voxl fork of libuvc vs compiling the master libuvc? I was thinking of just building the master libuvc but I am not sure if modalai did any changes to it.
@AndriiHlyvko , you can see the changes that we made to the original fork : https://github.com/modalai/libuvc/commits/modalai-master (just the three top commits).
You may definitely try to use the latest master from the official repo, but we have not tested it. I believe there was some discussion recently about moving our code to latest, but we have not done it yet.
Alex
-
@AndriiHlyvko , you can see the changes that we made to the original fork : https://github.com/modalai/libuvc/commits/modalai-master (just the three top commits).
You may definitely try to use the latest master from the official repo, but we have not tested it. I believe there was some discussion recently about moving our code to latest, but we have not done it yet.
Alex
@Alex-Kushleyev just tested with latest master. The seg fault is gone and it seems to be working fine. One new problem that I have after moving to libuvc master is that the video stream from the boson+ looks wrong (the video is green
). Its only wrong for boson+ and not the boson. I'll keep debugging the issue. I was thinking maybe the boson+ sends incomplete frames in the uvc callback but I'm not sure. -
@Alex-Kushleyev just tested with latest master. The seg fault is gone and it seems to be working fine. One new problem that I have after moving to libuvc master is that the video stream from the boson+ looks wrong (the video is green
). Its only wrong for boson+ and not the boson. I'll keep debugging the issue. I was thinking maybe the boson+ sends incomplete frames in the uvc callback but I'm not sure.@Alex-Kushleyev figured it out. I had a bug that I introduced. I broke the mapping between UVC_FRAME_FORMAT enum and the voxl IMAGE_FORMAT enum in my fork of the uvc-server. Right now uvc streaming is working well with the boson+
-
@Alex-Kushleyev figured it out. I had a bug that I introduced. I broke the mapping between UVC_FRAME_FORMAT enum and the voxl IMAGE_FORMAT enum in my fork of the uvc-server. Right now uvc streaming is working well with the boson+
@AndriiHlyvko , that's great!
If you are willing to help out and share your changes on top of libuvc master, it should help us get this updated more quickly

Thank you
Alex
-
@AndriiHlyvko , that's great!
If you are willing to help out and share your changes on top of libuvc master, it should help us get this updated more quickly

Thank you
Alex
@Alex-Kushleyev sure. Should I make a merge request for it and tag you in it?
-
@Alex-Kushleyev sure. Should I make a merge request for it and tag you in it?
@AndriiHlyvko , yes and please tag @Eric-Katzfey who will probably review and merge.
Thank you!
Alex
-
@AndriiHlyvko , yes and please tag @Eric-Katzfey who will probably review and merge.
Thank you!
Alex
-
@AndriiHlyvko , Thank you! I will ask @Eric-Katzfey to review at his convenience.
-
@AndriiHlyvko , Thank you! I will ask @Eric-Katzfey to review at his convenience.
I just ran into the same issue while testing Boson (in my case I was testing the 16-bit Boson streaming mode). The libuvc issue caused a crash, since i did not use a fixed version of libuvc. However, what actually caused the buffer overflow was the fact that Boson was reporting smaller buffer requirements for RAW16 during query (it was reporting
width * height * 1.5, just like for YUV, but actual frame size waswidth * height * 2, so uvc pipeline allocated smaller buffer and overflow happened with the full frame came in.Was this the same issue with your Boson tests or did you experience something else?
Thanks!
Alex
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login