Page 1 of 1

GQRX crash, OSX, RSP2 and SoapySDR

Posted: Wed Nov 15, 2017 10:30 am
by Neilm
I've hit what looks like a SoapySDR issue with Gqrx 2.9 running under OSX 10.13.1 (macOS High Sierra).
I'm using API/DRIVER VERSION 2.10.3 (SoapySDR) from the SDRplay Mac download page with an RSP2.

Gqrx crashes with the following error when I try to enable 'IQ balance':
terminating with uncaught exception of type std::runtime_error: soapy_source_c::set_iq_balance_mode() not supported.

I can't see 'set_iq_balance_mode' in the API Specification document and I can't see any reference to it being deprecate in the API Release document.
I've had a GoogleGroup conversation with the Gqrx developer and he (Alex) believes that it's a SoapySDR problem... hence this post.

Below is an extract from the Mac crash report.

Process: gqrx [94213]
Path: /Applications/HamRadio/*/Gqrx.app/Contents/MacOS/gqrx
Identifier: dk.gqrx.www
Version: 2.9 (0)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: gqrx [94213]
User ID: 501

Date/Time: 2017-11-15 19:23:00.508 +1100
OS Version: Mac OS X 10.13.1 (17B48)
Report Version: 12
Anonymous UUID: EDAF2EE1-D371-C890-7937-98C01AE314E8

Sleep/Wake UUID: 23F41D1C-474B-47DC-BAE1-086B86B271A0

Time Awake Since Boot: 150000 seconds
Time Since Wake: 1300 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called
terminating with uncaught exception of type std::runtime_error: soapy_source_c::set_iq_balance_mode() not supported

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff69ac1fce __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff69bff150 pthread_kill + 333
2 libsystem_c.dylib 0x00007fff69a1e30a abort + 127
3 libc++abi.dylib 0x00007fff67a00f8f abort_message + 245
4 libc++abi.dylib 0x00007fff67a01113 default_terminate_handler() + 241
5 libobjc.A.dylib 0x00007fff68d85eab _objc_terminate() + 105
6 libc++abi.dylib 0x00007fff67a1c7c9 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x00007fff67a1c478 __cxa_rethrow + 99
8 libobjc.A.dylib 0x00007fff68d84139 objc_exception_rethrow + 40
9 com.apple.CoreFoundation 0x00007fff4239003e CFRunLoopRunSpecific + 638
10 com.apple.HIToolbox 0x00007fff416af866 RunCurrentEventLoopInMode + 286
11 com.apple.HIToolbox 0x00007fff416af4df ReceiveNextEventCommon + 366
12 com.apple.HIToolbox 0x00007fff416af354 _BlockUntilNextEventMatchingListInModeWithFilter + 64
13 com.apple.AppKit 0x00007fff3f9aca23 _DPSNextEvent + 2085
14 com.apple.AppKit 0x00007fff40141e6c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
15 com.apple.AppKit 0x00007fff3f9a1831 -[NSApplication run] + 764
16 libqcocoa.dylib 0x00000001066dd9bf 0x1066b5000 + 166335
17 org.qt-project.QtCore 0x0000000105d79631 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 401
18 org.qt-project.QtCore 0x0000000105d7e099 QCoreApplication::exec() + 393
19 dk.gqrx.www 0x0000000104245531 main + 5249
20 libdyld.dylib 0x00007fff69972145 start + 1

Any thoughts....

Neil - vk3zve

Re: GQRX crash, OSX, RSP2 and SoapySDR

Posted: Wed Nov 15, 2017 11:10 am
by sdrplay
It looks like that function hasn't been implemented in the SoapySDRPlay library. It should probably be raised on the issue list.

FYI, IQ and DC offset compensation is enabled in the RSP API by default.

Best regards,

SDRplay Support

Re: GQRX crash, OSX, RSP2 and SoapySDR

Posted: Wed Nov 15, 2017 1:12 pm
by DK7OB
Yes it's a soapysdrplay or gr-osmosdr problem (Don't remember exactlly which one). It raises an exception if a function is not supported (instead of simply returning an error). I fixed it some time ago on my local build and thought it is now fixed upstream.

Do you get this crash if you disable the iq_balance in gqrx? Maybe you have to delete your gqrx configuration manually to be able to do this.

Re: GQRX crash, OSX, RSP2 and SoapySDR

Posted: Thu Nov 16, 2017 12:11 pm
by Neilm
I was originally using an old macports version of gqrx which didn't use SoapySDR. I had IQ balance enabled in that version. When I installed the new gqrx binary, it picked up the old configuration so gqrx crashed on startup with the iq_balance_mode() error. It was after deleting the macports version and restarting gqrx with the default start-up configuration that gqrx finally started (IQ balance disable by default). Yes, if I try to enable IQ balance after gqrx has started, it immediately terminates with the iq_balance-mode() error.

Neil - vk3zve