Closed orf closed 3 years ago
Hi @orf, Could you please share about the solution you are referring in the above use case. Thanks!
Hi @orf, Could you please share about the solution you are referring in the above use case. Thanks!
Can you explain what you exactly want? I did not write the custom solution so my knowledge is limited. I am only observing the segfaults. I’ve attached all the customisations to the original post?
it seems most of the segfaults come from the “wait for idle” method, but some come when feeding data into the graph.
re-creating the graph for every inference does not reduce segfaults.
This appears to be related to https://github.com/google/mediapipe/issues/2250, but we are using version 0.8.7.1
.
Hi @orf, Are you trying to build the Selfie segmentation python solution?
The GIL related fix is now only in the official Python v0.8.7.1 binaries, which are available in PyPI. The source code will go out in the next release.
Thank you! That makes sense, sorry I thought that the fix was included in the current code on GitHub. Can you share any ETAs on when the fix will be pushed?
The fix is released in https://github.com/google/mediapipe/commit/6abec128edd6d037e1a988605a59957c22f1e967. Please pull the latest version and build the python package again. Thanks.
Hi @orf, Did you get a chance to pull the latest version as mentioned in the above comment. Thanks!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you.
Closing as stale. Please reopen if you'd like to work on this further.
Please make sure that this is a bug and also refer to the troubleshooting, FAQ documentation before raising any issues.
System information (Please provide as much relevant information as possible)
Describe the current behavior:
We have a custom face analysis pipeline (attached at the end), but have no custom C/C++ code. We are building MediaPipe on Debian Stretch and have made no customizations to the build process - we use the stock docker container to run
setup.py bdist_wheel
.We read a video with
pyav
and pass it into the model, as below. We do this with a single thread, iterating over batches of 25 videos:The graph (and the .pbtxt single_face_analysis_cpu.txt):
When we run this over a large set of videos on our cluster we are seeing spurious segfaults:
I am still trying to correlate these segfaults to particular inputs, but I cannot seem to do so. The segfault is not reproducible at all. The only hint I have is that there is sometimes a Python garbage collection before the segfault:
However it does seem that the same set of 25 videos, when passed through
process()
in sequence, will sometimes cause a segfault whereas other sets of 25 videos will not. However the exact video that causes the segfault is non-deterministic, and it is sometimes the first video of the set.Describe the expected behavior:
Standalone code to reproduce the issue:
I cannot provide this. The videos we are processing are also of a personal nature and cannot be uploaded here. However I am willing to provide any additional information that might be required, including core-dumps if I can send them privately.