ultravideo / uvgComm

High performance P2P-Mesh video conferencing
ISC License
53 stars 14 forks source link

"Illegal instruction" crash when starting a call on Linux in release mode #6

Closed jrsnen closed 3 years ago

jrsnen commented 3 years ago

Symptoms

Kvazzup crashes by printing Illegal Instruction.

Setup

Linux OS using GCC in release mode. Qt version unknown.

Reproduction

Call to another Kvazzup in LAN on Linux with release build?

Suspected Cause

Hard to say at this point. Could be that some optimization is not supported. Illegal Instruction would point to one of Kvazzups dependencies, either they have a problem or Kvazzup is using them incorrectly.

Log

QMetaObject::connectSlotsByName: No matching signal for on_about_clicked()
 ============================================================================= 
KvazzupController:                      Kvazzup initiation Started
 ============================================================================= 
ContactList:                            Reading contact list (# of contacts: 1)
VideoDrawHelper:                        Warning! Tried updating target rect before picture
Settings Helper:                        Warning! Found missing setting. Resetting video settings (Missing key: sip/ServerAddress)
Settings:                               Warning! Could not restore settings! Resetting settings from defaults.
Settings:                               Recording settings
VideoSettings:                          Resettings video settings fomr UI
VideoSettings:                          Initializing formats
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Saving video Settings
VideoSettings:                          Recording capability settings for device (Device Index: 0)
VideoSettings:                          Box status
                                        -- Format: -1
                                        -- Resolution: -1

Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Recorded following video settings.
                                        -- Resolution: 0x0
                                        -- Resolution Index: 0
                                        -- Format: No_camera

Settings Helper:                        Writing list from GUI to settings
                                        -- File: kvazzup.ini
                                        -- List name: parameters
                                        -- Table items: 0

AudioSettings:                          Saving audio Settings
Settings:                               Opening settings
Settings Helper:                        ERROR! Missing setting found (Key: video/OWF)
AudioSettings:                          Saving audio Settings
VideoSettings:                          Initializing formats
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Max Threads (Threads: 4)
Settings Helper:                        ERROR! Missing setting found (Key: video/OWF)
VideoSettings:                          Resettings video settings fomr UI
VideoSettings:                          Initializing formats
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Saving video Settings
VideoSettings:                          Recording capability settings for device (Device Index: 0)
VideoSettings:                          Box status
                                        -- Format: -1
                                        -- Resolution: -1

Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Recorded following video settings.
                                        -- Resolution: 0x0
                                        -- Resolution Index: 0
                                        -- Format: No_camera

Settings Helper:                        Writing list from GUI to settings
                                        -- File: kvazzup.ini
                                        -- List name: parameters
                                        -- Table items: 0

Settings Helper:                        Reading list from settings
                                        -- File: blocklist.local
                                        -- List name: blocklist
                                        -- Items: 0

CallWindow:                             Initiating, CallWindow: Creating statistics window
ChartPainter:                           Initiating chart (Title: Bandwidth (kbit/s))
ChartPainter:                           Initiating chart (Title: Bit rates (kbit/s))
ChartPainter:                           Initiating chart (Title: Bit rates (kbit/s))
ChartPainter:                           Initiating chart (Title: Latencies (ms))
ChartPainter:                           Initiating chart (Title: Latencies (ms))
ChartPainter:                           Initiating chart (Title: Frame rates (fps))
SIPManager:                             Listening to SIP TCP connections (Port: 5060)
SIPDialogManager:                       Iniating SIP Transactions
SIPRegistrations:                       Initiatin Registrations
NetworkCandidates:                      Allocating (but not reserving) ports for media
                                        -- Min ports: 38500
                                        -- Max port: 39500

MediaManager:                           Initiating
FilterGraph:                            Iniating camera and selfview
CameraFilter:                           Initiating Qt camera (ID: 0)
CameraFilter:                           Using the following camera settings.
                                        -- Format: No_camera
                                        -- Resolution: 640x480
                                        -- Framerate: 30 to 30

ChartPainter:                           Initiating chart (Title: Frame rates (fps))
 ============================================================================= 
CameraFilter:                           Starting camera.
 ============================================================================= 
FilterGraph:                            Connecting filters (Connection: Camera -> Display)
FilterGraph:                            Connecting filters (Connection: Screen Sharing -> Display)
 ============================================================================= 
KvazzupController:                      Kvazzup initiation finished
 ============================================================================= 
VideoDrawHelper:                        Warning! Tried updating target rect before picture
GUIMessage:                             Closing message (Waiting messages: 0)
Settings:                               Closing Settings. Gettings settings from file.
Settings Helper:                        Warning! Found missing setting. Resetting video settings (Missing key: sip/ServerAddress)
Settings:                               Recording settings
VideoSettings:                          Saving video settings
VideoSettings:                          Saving video Settings
VideoSettings:                          Recording capability settings for device (Device Index: 0)
VideoSettings:                          Box status
                                        -- Format: -1
                                        -- Resolution: -1

Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Recorded following video settings.
                                        -- Resolution: 0x0
                                        -- Resolution Index: 0
                                        -- Format: No_camera

Settings Helper:                        Writing list from GUI to settings
                                        -- File: kvazzup.ini
                                        -- List name: parameters
                                        -- Table items: 0

CameraFilter:                           Updating camera settings since they have changed
CameraFrameGrabber:                     Warning! Not a valid frame
CameraFilter:                           Initiating Qt camera (ID: 0)
CameraFilter:                           Using the following camera settings.
                                        -- Format: No_camera
                                        -- Resolution: 640x480
                                        -- Framerate: 30 to 30

ChartPainter:                           Initiating chart (Title: Frame rates (fps))
 ============================================================================= 
CameraFilter:                           Starting camera.
 ============================================================================= 
FilterGraph:                            Starting camera
Common:                                 Warning! Found faulty setting (Key: sip/ServerAddress)
SIPManager:                             Warning! SIP Registrar was empty or we have already registered. No registering.
VideoSettings:                          Cancelled modifying video settings. Getting settings from system.
VideoSettings:                          Initializing formats
Camera Info:                            Getting text of 0 video formats (DeviceID: 0)
VideoSettings:                          Max Threads (Threads: 4)
VideoSettings:                          Restoring previous video settings from file. (Filename: /home/ubuntu/Desktop/VideoConf/bin/kvazzup.ini)
Settings Helper:                        Reading list from settings
                                        -- File: kvazzup.ini
                                        -- List name: parameters
                                        -- Items: 0

Settings:                               Opening settings
Settings:                               Closing Settings. Gettings settings from file.
Settings Helper:                        Warning! Found missing setting. Resetting video settings (Missing key: sip/ServerAddress)
Settings:                               Closing Settings. Gettings settings from file.
Settings Helper:                        Warning! Found missing setting. Resetting video settings (Missing key: sip/ServerAddress)
KvazzupController:                      Starting call with contact (Contact: BinhHP)
SIPTransport:                           Initiating TCP connection for sip connection (TransportID: 1)
TCPConnection:                          Establishing connection
                                        -- Destination: 192.168.178.101
                                        -- port: 5060

 ============================================================================= 
TCPConnection:                          Starting TCP loop
 ============================================================================= 
TCPConnection:                          Starting to connect TCP
TCPConnection:                          Checking status (Address: 192.168.178.101:5060)
TCPConnection:                          Attempting to connect (Attempt: 1)
TCPConnection:                          Connected succesfully (Connection: 192.168.178.111:37948 <-> 192.168.178.101:5060)
SIPDialogManager:                       Intializing a new dialog by sending an INVITE
SIPDialogState:                         Creating a new dialog.
Local dialog created. CallID:  "FUjXaXS1huWMxnHC" Tag: "juw5B7nF7nJXr9JP" Cseq: 1617104989
SIPDialogState:                         Setting peer-to-peer address.
SIP, Dialog client: Starting a call and sending an INVITE in session
SIPDialogClient:                        Client starts sending a request. (Type: 1)
SIPDialog:                              Iniate sending of a dialog request
SIPDialogState:                         Increasing CSeq (CSeq: 1617104990)
 ============================================================================= 
SIPTransport:                           Composing and sending SIP Request: (Type: INVITE)
 ============================================================================= 
SIPDialog:                              Finished sending of a dialog request
TCPConnection:                          Writing buffer to TCP socket (Buffer size: 1)
ConferenceView:                         Adding widget to display that we are calling someone. (SessionID: 1)
ConferenceView:                         Checks session: SessionID does not exist
ConferenceView:                         Checks session: SessionID does not exist
ConferenceView:                         Initializing session (SessionID: 1)
TCPConnection:                          Written to socket (Bytes: 382)
TCPConnection:                          Can read one line (Bytes available: 318)
SIPTransport:                           Parsing package to header and body
                                        -- Messages parsed so far: 0
                                        -- Header end index: 318
                                        -- content-length index: 297

SIPTransport:                           Parsed Content-length (Content-length: 0)
Parsing SIP header with 8 lines
Found following SIP fields: ("Via", "Max-Forwards", "To", "From", "Call-ID", "CSeq", "Content-Length")
 ============================================================================= 
SIPTransport:                           Parsing incoming response (Type: 180)
 ============================================================================= 
SIPRouting:                             Found our via. This is meant for us!
SIPDialogManager:                       Starting to process identifying SIP response dialog.
We don't yet have their remote Tag. Using the one in response.
SIPDialogManager:                       Found dialog matching the response
SIPDialogClient:                        Client starts processing response
SIPDialogClient:                        Got a provisional response. Restarting timer.
KvazzupController:                      Our call is ringing
Ringing, ConferenceView : Call is ringing. SessionID 1
SIPDialogManager:                       Response processing finished (SessionID: 1)
TCPConnection:                          Can read one line (Bytes available: 887)
SIPTransport:                           Parsing package to header and body
                                        -- Messages parsed so far: 0
                                        -- Header end index: 411
                                        -- content-length index: 357

SIPTransport:                           Parsed Content-length (Content-length: 476)
Parsing SIP header with 10 lines
Found following SIP fields: ("Via", "Max-Forwards", "To", "From", "Call-ID", "CSeq", "Contact", "Content-Length", "Content-Type")
Found media: "audio"
Correctly matched a flag attribute:  "sendrecv"
Found media: "video"
Correctly matched a flag attribute:  "sendrecv"
Parsed SDP is valid.
Successfully parsed SDP
 ============================================================================= 
SIPTransport:                           Parsing incoming response (Type: 200)
 ============================================================================= 
SIPRouting:                             Found our via. This is meant for us!
SIPDialogManager:                       Starting to process identifying SIP response dialog.
SIPDialogManager:                       Found dialog matching the response
SIPManager:                             Got first SDP offer.
Negotiation:                            Found following codecs in SDP (Codecs: pcm, h265)
SDPNegotiator:                          Found suitable RTP number.
SDPNegotiator:                          Found suitable codec.
ICE:                                    Start Generating ICE candidates
                                        -- Local: 4
                                        -- Global: 0
                                        -- STUN: 0
                                        -- STUN relays: 0
                                        -- TURN: 0

 ============================================================================= 
ICE:                                    Starting ICE nomination
 ============================================================================= 
ICE:                                    Created 4 candidate pairs
SIPDialogClient:                        Client starts processing response
 ============================================================================= 
KvazzupController:                      They accepted our call!
 ============================================================================= 
SIPDialogClient:                        Client starts sending a request. (Type: 2)
SIPDialog:                              Iniate sending of a dialog request
SIPManager:                             Adding SDP content to request
 ============================================================================= 
SIPTransport:                           Composing and sending SIP Request: (Type: ACK)
 ============================================================================= 
SIPContent:                             Parameter SDP is valid. Starting to compose to string.
Sending, SIPContent : Composed SDP string: v=0
o=BinhT420 1617104991326 1617104991326 IN IP4 192.168.178.111
s=HEVCVideoCall
c=IN IP4 192.168.178.111 
t=0 0
m=audio 0 RTP/AVP 0
a=sendrecv
m=video 0 RTP/AVP 97
a=rtpmap:97 h265/90000
a=sendrecv
a=candidate:1 1 UDP 2130706431 192.168.178.111 38500 typ host
a=candidate:1 2 UDP 2130706430 192.168.178.111 38501 typ host
a=candidate:1 3 UDP 2130706429 192.168.178.111 38502 typ host
a=candidate:1 4 UDP 2130706428 192.168.178.111 38503 typ host

SIPDialog:                              Finished sending of a dialog request
TCPConnection:                          Writing buffer to TCP socket (Buffer size: 1)
IcePairTester:                          Controller starts connectivity tests. (Pair: 192.168.178.111:38500 <-> 192.168.178.101:38500)
KvazzupController:                      Call negotiated
KvazzupController:                      Waiting for the ICE to finish before starting the call.
SIPDialogManager:                       Response processing finished (SessionID: 1)
IcePairTester:                          Controller starts connectivity tests. (Pair: 192.168.178.111:38502 <-> 192.168.178.101:38502)
TCPConnection:                          Written to socket (Bytes: 842)
IcePairTester:                          Controller starts connectivity tests. (Pair: 192.168.178.111:38503 <-> 192.168.178.101:38503)
IcePairTester:                          Controller starts connectivity tests. (Pair: 192.168.178.111:38501 <-> 192.168.178.101:38501)
IcePairTester:                          Controller found a connection (Pair: 192.168.178.111:38500 <-> 192.168.178.101:38500)
IceSessionTester:                       Controller component finished (Finished components: 1/4)
IcePairTester:                          Controller found a connection (Pair: 192.168.178.111:38503 <-> 192.168.178.101:38503)
IcePairTester:                          Controller found a connection (Pair: 192.168.178.111:38501 <-> 192.168.178.101:38501)
IcePairTester:                          Controller found a connection (Pair: 192.168.178.111:38502 <-> 192.168.178.101:38502)
IceSessionTester:                       Controller component finished (Finished components: 2/4)
IceSessionTester:                       Controller component finished (Finished components: 3/4)
IceSessionTester:                       Controller component finished (Finished components: 4/4)
 ============================================================================= 
ICE:                                    ICE finished.
                                        -- Component 1: 192.168.178.111:38500 <-> 192.168.178.101:38500
                                        -- Component 2: 192.168.178.111:38501 <-> 192.168.178.101:38501
                                        -- Component 3: 192.168.178.111:38502 <-> 192.168.178.101:38502
                                        -- Component 4: 192.168.178.111:38503 <-> 192.168.178.101:38503

 ============================================================================= 
Negotiation:                            ICE nomination has succeeded (SessionID: 1)
KvazzupController:                      ICE has been successfully completed (SessionID: 1)
KvazzupController:                      Call has been agreed upon with peer. (SessionID: 1)
ConferenceView:                         Adding Videostream. (SessionID: 1)
View, VideoFactory : Creating videowidget for sessionID: 1
VideoviewFactory:                       Created video widget.
                                        -- SessionID: 1
                                        -- View Number: 1

ConferenceView:                         Clearing all previous views.
VideoDrawHelper:                        Warning! Tried updating target rect before picture
Delivery:                               Adding new peer
Delivery:                               RTP streamer (SessionID: 1)
MediaManager:                           Start creating media.
                                        -- Outgoing media: 2
                                        -- Incoming media: 2

MediaManager:                           Using media specific address for outgoing media.
                                        -- Type: audio
                                        -- Path: 192.168.178.111:38502 -> 192.168.178.101:38502

Delivery:                               Creating mediastream
Delivery:                               Creating sender filter
AudioCaptureFilter:                     Initializing audio capture filter.
[RTPLIB][WARNING][::set_payload] Unknown RTP format, setting clock rate to 10000
AudioCaptureFilter:                     A microphone chosen. (Device name: default)
AudioCaptureFilter:                     Creating audio input. (Notify interval (ms): 1000)
AudioCaptureFilter:                     Audio initializing completed.
AudioCaptureFilter:                     Resuming audio input.
AECProcessor:                           Initiating echo frame processing (Filter length: 1600)
FilterGraph:                            Connecting filters (Connection: Audio_Capture -> AEC input)
FilterGraph:                            Starting microphone
AudioCaptureFilter:                     Resuming audio input.
MediaManager:                           Using media specific address for outgoing media.
                                        -- Type: video
                                        -- Path: 192.168.178.111:38500 -> 192.168.178.101:38500

Delivery:                               Creating mediastream
Delivery:                               Creating sender filter
UvgRTPSender:                           Updated buffersize (Size: 64)
FilterGraph:                            Adding send video (SessionID: 1)
FilterGraph:                            Iniating video send
FilterGraph:                            Filter output and input do not match. Finding conversion (Connection: Camera->Kvazaar)
FilterGraph:                            Adding RGB32 to YUV conversion
FilterGraph:                            Connecting filters (Connection: Camera -> RGB32toYUV)
FilterGraph:                            Connecting filters (Connection: RGB32toYUV -> Kvazaar)
"Kvazaar" iniating
Using preset ultrafast: --rd=0 --pu-depth-intra=2-3 --pu-depth-inter=1-2 --me=hexbs --gop=8 --ref=1 --bipred=1 --deblock=0:0 --signhide=0 --subme=0 --sao=off --rdoq=0 --rdoq-skip=0 --transform-skip=0 --mv-rdo=0 --full-intra-search=0 --smp=0 --amp=0 --cu-split-termination=zero --me-early-termination=sensitive --intra-rdo-et=0 --early-skip=1 --fast-residual-cost=28 --max-merge=5 
Initialization, Filter Getting custom Kvazaar options: 0
Compiled: INTEL, flags: MMX SSE SSE2
Detected: INTEL, flags: MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42 AVX
Available: sse2(2) sse41(4) 
In use: sse2(1) sse41(4) 
"Kvazaar" iniation succeeded.
FilterGraph:                            Filter output and input do not match. Finding conversion (Connection: Screen Sharing->Kvazaar)
FilterGraph:                            Adding RGB32 to YUV conversion
FilterGraph:                            Connecting filters (Connection: Screen Sharing -> RGB32toYUV)
FilterGraph:                            Connecting filters (Connection: RGB32toYUV -> Kvazaar)
"Kvazaar" iniating
MediaManager:                           Using media specific address for incoming.
                                        -- Type: audio
                                        -- Address: 192.168.178.111
                                        -- Port: 38502

Delivery:                               Creating receiver filter
FilterGraph:                            Connecting filters (Connection: RTP Receiver PCM -> Audio Mixer)
MediaManager:                           Using media specific address for incoming.
                                        -- Type: video
                                        -- Address: 192.168.178.111
                                        -- Port: 38500

Delivery:                               Creating receiver filter
FilterGraph:                            Connecting filters (Connection: RTP Receiver HEVC -> OpenHEVC)
Filter:                                 Starting to initiate OpenHEVC
[hevc @ 0x55ef09981e30] nb threads_frame = 1, nb threads_slice 1, thread_type = null 
[hevc @ 0x55ef090434f0] nb threads_frame = 1, nb threads_slice 1, thread_type = null 
Filter:                                 OpenHEVC initiation successful. (Version: OpenHEVC v2.0)
FilterGraph:                            Filter output and input do not match. Finding conversion (Connection: OpenHEVC->Display)
FilterGraph:                            Adding YUV to RGB32 conversion
FilterGraph:                            Connecting filters (Connection: OpenHEVC -> YUVtoRGB32)
FilterGraph:                            Connecting filters (Connection: YUVtoRGB32 -> Display)
KvazzupController:                      Waiting for the ICE to finish before starting the call.
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioCaptureFilter:                     Audio Input State changed (States:: Current: 0, Wanted: 0)
Processing, "Kvazaar" buffer full. Discarded input: 1 Total input: 4
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
AudioOutputDevice:                      Warning! Read too little audio data. (Read vs available: 0 vs 1280)
Filter:                                 Parameter set found (Frame received before: 0)
Filter:                                 PEER ERROR:Detected no slices in incoming stream.
Filter:                                 Uniniating.
[hevc @ 0x55ef09981e30] flush, decoder_0.
Filter:                                 Starting to initiate OpenHEVC
[hevc @ 0x7fde20076530] nb threads_frame = 1, nb threads_slice 1, thread_type = null 
[hevc @ 0x7fde20035f00] nb threads_frame = 1, nb threads_slice 1, thread_type = null 
Filter:                                 OpenHEVC initiation successful. (Version: OpenHEVC v2.0)
Illegal instruction (core dumped)
Thanh-Binh commented 3 years ago

@polusto I want to test kvazzup under Windows 10 64bits and found it is not so easy to compile all dependent libraries! Could you please send me necessary libraries do that I can compile kvazzup and debug it? Thanks I use VS 2015 and 2017!

Thanh-Binh commented 3 years ago

@polusto I found that the crash problem is happened on Ubuntu 18.04 LTS. In Ubuntu 20.04 LTS, it works well with video communication without audio. I try to debug it...

jrsnen commented 3 years ago

It sounds like Ubuntu 18.04 has an older version of some Kvazzup dependency that crashes unless you have compiled the dependencies yourself. I heard there has been a similar issue in a very old version of Kvazaar. I would suggest comparing version numbers of libraries (Kvazaar, OpenGL, ...)

In any case this does not seem like an issue that can be dealt in Kvazzup.

Thanh-Binh commented 3 years ago

I said you are working on Windows. Can you share me your VS project solution and depending libraries?

jrsnen commented 3 years ago

I have to think about it. It would be nice to share those hard to compile windows dependencies from our website so compilation would be easier.

Thanh-Binh commented 3 years ago

@polusto thanks

jrsnen commented 3 years ago

The libraries are now available for the newest release v0.09.

jrsnen commented 3 years ago

I tested the release mode on Ubuntu and I'm not able to reproduce this issue. I'm going close this issue at some point unless more information is provided.

jrsnen commented 3 years ago

@Thanh-Binh Can I close this issue? There is not enough information for me to continue fixing this and currently it does not seem like it is a Kvazzup issue.

Thanh-Binh commented 3 years ago

@polusto yes please close this. Thanks