-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OSX: libremoteSupport.so hangs SoapySDRUtil, PothosFlow #67
Comments
I had an issue in the recent release with MDNS api calls locking up in certain conditions. This commit should have addressed that, but there may still be lingering issues: 6b4eb5f Its just a guess, but if you were to put a return result here and skip all of the MDNS calls, it might stop locking up: https://github.com/pothosware/SoapyRemote/blob/master/common/SoapyMDNSEndpointApple.cpp#L252 At least that would point to something in this file as opposed to somewhere else. |
returning a null result for now like so:
SoapySDRUtil --find works reliably with the patched libremoteSupport.so installed - no more hangs PothosFlow not so much - sometimes a topology containing plotter widgets displays signals, sometimes not - even with libremoteSupport.so removed, and .conf/Pothos cleaned reloading the plugins does help on and off PothosFlow does exit without a hang (it used to with the unpatched libremotesupport.so) |
Thanks for testing. The problem is that I can't replicate this. If you are still willing to try things, I think that one of the calls to
A little print before and after would confirm that. Its possible that they all need a wait with timeout change just like that previous commit that I mentioned. I'm just trying to figure this out, I dont think their API or examples mentioned this... Ex:
Not sure, might be unrelated to the first issue. Any particular hardware involved, does it only happen with an SoapySDR source block, its fine otherwise? Do you have a minimal topology that shows the problem? |
on the case Q: I see pothosware/SoapySDR@e6456d5 do I read this as 'Python 3.7' not supported? maybe that is part of the story I use Python3.7.2 which came with brew - I wonder how other versions actually get install on OSX (macports? I'd rather just have one package manager) |
Python 3.7 works. It's just that no Python interpreter > 3.2 will be automatically configured and no libs > 3.4 will be automatically found.
But that's all just support for Python. The SoapySDR apps don't use it. |
@guruofquality should I build against master or pothos-0.6.1 ? |
I have had a lot of trouble getting the correct python devel libs for homebrew. This could probably be done better. The python3 directory is a hack to make source installs easy on those dual python version linux boxes. In practice, the python/ direction is a stand alone cmake project that can build for any version of python as many as you want. The brew recipe could probably call that with whatever specific variables they provide for the correct python interpreter (or just whatever
The release is probably best, but its not a dependency for just the soapy remote issue here. |
I have Pothos, SoapyRemote, SoapySDR, SoapyRTLSDR debug builds from master on two debian stretch and an OSX host, all three have RTL-SDR sticks, the OSX host also has a LimeSDR Mini (which I did not use here); and a Redpitaya with just SoapyRemote/SoapySDR test is a Soapy source linked to a Spectrogram widget. These combinations work: linuxA gui -> local RTLSDR *): On clean PothosFlow startup on OSX (.config/Pothos/* cleaned) all this works until I select the Host Explorer tab and click on the localhost entry: the log window shows:
the terminal window I started PothosFlow from shows:
From then on the GUI hangs in the sense that the test cannot be activated anymore. I think what happens is that the PothosUtil process(es) forked from PothosFlow die on OSX when using the Host Explorer tab - Pothos processes running as long as things are fine:
After host-exploring localhost the two background PothosUtil processes become defunct:
It looks the SoapySDR stuff is not the culprit, rather PothosUtil. The following could be a hint: I ran a PothosUtil proxy on OSX and host-explored it from a Linux GUI:
As soon as the linux PothosFlow host explore starts, the OSX PothosUtil catches an exception:
looks like this causing the dying background PothosUtil. Running this under lldb:
unsure how to go from here. ps: unrelated - the redpitaya SoapySDRServer never shows up in a Linux or OSX Soapy Source dropdown, despite being queried |
here's a screen recording: http://static.mah.priv.at/private/pothos-bug.mov |
There is just no discovery protocol or maybe there is and it was left out: pothosware/SoapyRedPitaya#2 So the use case is to manually specify the "addr" https://github.com/pothosware/SoapyRedPitaya/wiki#probing-soapy-red-pitaya
I tested this an it automatically finds the right development files for python3:
@mhaberler thanks for the info, its going to take me a bit to replicate. But thats going to be a fun one to track down, especially if whatever its reporting when the remote explorer requests the info causes the crash, if I cant get the same "bad state" or whatever it may be. Going back to the SoapyRemote issue, there is still actually an MDNS bug here, there is an OSX API call locking up unexpectedly, -- and thats a totally separate still open issue, correct?
Actually yes please, I think running lldb on the PothosUtil was a great idea, there may be some debug prints as well.
So this is why I think we want the MDNS stuff fixed, because its actually how it finds the servers, it might be related. The SSDP is another fallback I implemented for the same purpose, and it looks like its not able to bind on ipv4 |
so - piecemeal: a) in the PothosUtil standalone case, the 'I/O error [in file ...ErrorHandler.cpp", line 46]' throw originates from an EOF condition here: that seems not fatal yet - I can run the test topo on a Linux GUI and set affinity for the SoapySDRSource to OSX, and that works fine b) in the 'PothosUtil started from PothosFlow' case I find it very difficult to debug that - I can attach, but shortly thereafter the process exits(0) , see below is there a way I can run PothosUtil standalone under the debugger and PothosFlow refraining from starting its own but rather connect to the already running PothosUtil? or at least crank up logging?
|
OSX Mojave 10.14.3 (18D109)
brew 2.0.4 install as per https://github.com/pothosware/homebrew-pothos/wiki
SoapyRemote not yet installed:
After
brew install soapyremote
(or install from source at a6fbf2d , no difference):Running lldb on the hanging SoapySDRUtil process:
I can try with a debug build to get a better backtrace if needed
Michael
The text was updated successfully, but these errors were encountered: