Opened 16 years ago

Closed 16 years ago

#4243 closed defect (invalid)

mythfrontend only segfaults on new Ubuntu 7.10 install

Reported by: DannyCan@… Owned by: Nigel
Priority: minor Milestone: 0.22
Component: mythtv Version: head
Severity: medium Keywords: segfault frontend bug debug
Cc: Ticket locked: no

Description

I reformatted and installed Ubuntu 7.10 (before I had 7.04 and it worked perfect).
Then I installed all the MythTV requirements the same way I did last time by doing "sudo apt-get build-dep mythtv".
Then I compiled using a script that I made (attaching).
When I try to run it all I get is this:

~/svn$ mythfrontend
2007-11-29 19:02:40.735 Using runtime prefix = /usr
Segmentation fault (core dumped)

Then I did "gdb mythbackend -x gdbcommands" following the instructions in the Debugging section from the documentation.
I am going to attach the gdb.txt
If anyone needs anymore info just ask :)

Attachments (4)

gdb.txt (4.8 KB) - added by DannyCan@… 16 years ago.
GDB log file
mythsvn.sh (336 bytes) - added by DannyCan@… 16 years ago.
My Mythtv compile script
gdbnew.txt (4.9 KB) - added by DannyCan@… 16 years ago.
Here is the updated GDB trace. Let me know if I didn't do it right.
gdb.2.txt (2.4 KB) - added by DannyCan@… 16 years ago.
New gdb.txt after the patched upnpcmgr.cpp

Download all attachments as: .zip

Change History (21)

Changed 16 years ago by DannyCan@…

Attachment: gdb.txt added

GDB log file

Changed 16 years ago by DannyCan@…

Attachment: mythsvn.sh added

My Mythtv compile script

comment:1 Changed 16 years ago by Michael Pope <map7@…>

I've tested your mythsvn.sh script under ubuntu7.10 today and all I had to do was setup my shared libraries to the svn ones and start mythbackend, then mythfrontend and it works. I'm using SVN revision 15169.

Here is my script to start mythfrontend from within it's directory:

rootpath="/home/d110/mythtv-svn/mythtv/libs"

export LD_LIBRARY_PATH=$rootpath/libavcodec:$rootpath/libavformat:$rootpath/libavutil:$rootpath/libmyth:$rootpath/libmythdvdnav:$rootpath/libmythfreemheg:$rootpath/libmythlivemedia:$rootpath/libmythmpeg2:$rootpath/libmythsamplerate:$rootpath/libmythsoundtouch:$rootpath/libmythtv:$rootpath/libmythui:$rootpath/libmythupnp:$rootpath/libpostproc

echo $LD_LIBRARY_PATH

./mythfrontend

comment:2 Changed 16 years ago by DannyCan@…

Mike, I tried that and it didn't have any effect.
Are you saying I have to cd to /usr/bin and do ./mythfrontend on the last line in your script? I tried that and it didn't make a difference.
I don't really understand what using the compiled libraries still within the source code dir is supposed to change because after make install it's going to use them anyway...

comment:3 Changed 16 years ago by anonymous

No I changed into the directory which svn was compiled ~/svn/mythtv/programs/mythfrontend then ran ./mythfrontend (using that script above to set my lib path).

comment:4 Changed 16 years ago by Nigel

Owner: changed from Isaac Richards to Nigel
Status: newassigned

This looks like a UPnP bug, but the GDB log is of limited use to me. Any chance of 'mythfrontend -v all' output, any maybe trying with today's SVN head (-r15231) which has some UPnP fixes.

comment:5 Changed 16 years ago by DannyCan@…

Mike, I tried going to "~/svn/mythtv/programs/mythfrontend" and running "./mythfrontend" but it didn't have any effect.

Nigel, I just recompiled using the latest change (15282) and it still wont work for me.
I did a "mythfrontend -v all" for you and here is the output:

~$ mythfrontend -v all
2008-01-01 15:17:07.818 Using runtime prefix = /usr
2008-01-01 15:17:07.818 UPnp - Constructor
2008-01-01 15:17:07.818 MediaRenderer::Begin
2008-01-01 15:17:07.818 ThreadPool:AddWorkerThread - HTTP_WorkerThread
2008-01-01 15:17:07.819 HttpServer( 6547 ) - SharePath = /usr/share/mythtv/
2008-01-01 15:17:07.819 UPnp::Initialize - Begin
2008-01-01 15:17:07.819 UPnp::Initialize - Starting TaskQueue
2008-01-01 15:17:07.819 UPnp::Initialize - Creating SSDP Thread at port 6547
2008-01-01 15:17:07.822 UPnp::Initialize - End
2008-01-01 15:17:07.822 MediaRenderer::Creating UPnp Description
2008-01-01 15:17:07.822 MediaRenderer::Registering CMGR Service.
Segmentation fault (core dumped)
~$

I'm seeing UPnp stuff in there so I'm thinking that might have something to do with it but what do I know?
Is there a way to disable UPnp in the frontend to see if it will work? I tried "mythfrontend --disable-upnp" but that didn't change anything.
-Danny

comment:6 Changed 16 years ago by Nigel

For the programs other than mythfrontend, having a valid mysql.txt and an empty config.xml will bypass UPnP. MythFrontend always sets up a UPnP stack, though.
Please create and attach GDB traces of the crash.

Changed 16 years ago by DannyCan@…

Attachment: gdbnew.txt added

Here is the updated GDB trace. Let me know if I didn't do it right.

comment:7 Changed 16 years ago by Nigel

Resolution: fixed
Status: assignedclosed

I am assuming/hoping that this was fixed by [15283] and [15286]

comment:8 Changed 16 years ago by DannyCan@…

Nigel, I'm sorry I forgot to mention that it is still not working for me with the same symptoms as before.
I have just deleted my sources directory and redownloaded, recompiled, and reinstalled the mythtv trunk. The error message also appears the same:

$ mythfrontend -v all
2008-01-15 20:08:46.744 Using runtime prefix = /usr, libdir = /usr/lib
2008-01-15 20:08:46.744 UPnp - Constructor
2008-01-15 20:08:46.744 MediaRenderer::Begin
2008-01-15 20:08:46.745 ThreadPool:AddWorkerThread - HTTP_WorkerThread
2008-01-15 20:08:46.746 HttpServer( 6547 ) - SharePath = /usr/share/mythtv/
2008-01-15 20:08:46.746 UPnp::Initialize - Begin
2008-01-15 20:08:46.746 UPnp::Initialize - Starting TaskQueue
2008-01-15 20:08:46.746 UPnp::Initialize - Creating SSDP Thread at port 6547
2008-01-15 20:08:46.748 UPnp::Initialize - End
2008-01-15 20:08:46.749 MediaRenderer::Creating UPnp Description
2008-01-15 20:08:46.749 MediaRenderer::Registering CMGR Service.
Segmentation fault (core dumped)
$

comment:9 Changed 16 years ago by Nigel

Resolution: fixed
Status: closednew

OK. I am at a bit of a loss then. The gdb helps narrow it down, but not a lot.
Any change of building with the following changes:

Index: libs/libmythupnp/libmythupnp.pro
===================================================================
--- libs/libmythupnp/libmythupnp.pro    (revision 15447)
+++ libs/libmythupnp/libmythupnp.pro    (working copy)
@@ -71,3 +71,5 @@
     # It isn't built yet, so we have to ignore these for now:
     QMAKE_LFLAGS_SHLIB += -flat_namespace -undefined warning
 }
+
+QMAKE_CXXFLAGS += -g
Index: libs/libmythupnp/upnpcmgr.cpp
===================================================================
--- libs/libmythupnp/upnpcmgr.cpp       (revision 15447)
+++ libs/libmythupnp/upnpcmgr.cpp       (working copy)
@@ -25,6 +25,9 @@
     AddVariable( new StateVariable< QString >( "SinkProtocolInfo"    , true ) );
     AddVariable( new StateVariable< QString >( "CurrentConnectionIDs", true ) );
 
+puts("About to SetValue with a QString");
+    SetValue< QString >( "CurrentConnectionIDs", QString("0") );
+puts("About to SetValue with a literal char*");
     SetValue< QString >( "CurrentConnectionIDs", "0" );
     SetValue< QString >( "SourceProtocolInfo"  , sSourceProtocols );
     SetValue< QString >( "SinkProtocolInfo"    , sSinkProtocols   );

and providing -v all output? (plus another gdb.txt if it crashes)

comment:10 Changed 16 years ago by DannyCan@…

I applied the patch to file upnpcmgr.cpp which added:

puts("About to SetValue with a QString");
    SetValue< QString >( "CurrentConnectionIDs", QString("0") );
puts("About to SetValue with a literal char*");

The file libmythupnp.pro already had the lines of code that you provided. This is the new -v all output:

$ mythfrontend -v all
2008-01-15 22:14:08.687 Using runtime prefix = /usr, libdir = /usr/lib
2008-01-15 22:14:08.687 UPnp - Constructor
2008-01-15 22:14:08.688 MediaRenderer::Begin
2008-01-15 22:14:08.689 ThreadPool:AddWorkerThread - HTTP_WorkerThread
2008-01-15 22:14:08.689 HttpServer( 6547 ) - SharePath = /usr/share/mythtv/
2008-01-15 22:14:08.689 UPnp::Initialize - Begin
2008-01-15 22:14:08.689 UPnp::Initialize - Starting TaskQueue
2008-01-15 22:14:08.690 UPnp::Initialize - Creating SSDP Thread at port 6547
2008-01-15 22:14:08.692 UPnp::Initialize - End
2008-01-15 22:14:08.692 MediaRenderer::Creating UPnp Description
2008-01-15 22:14:08.692 MediaRenderer::Registering CMGR Service.
About to SetValue with a QString
Trace/breakpoint trap (core dumped)
$

I am also going to attach a new gdb.txt

Changed 16 years ago by DannyCan@…

Attachment: gdb.2.txt added

New gdb.txt after the patched upnpcmgr.cpp

comment:11 Changed 16 years ago by Nigel

Second GDB trace is even less useful, so I am downloading Ooobuntooo 7.1.0 now. Assume you are using 32bit desktop version?
Could I also get you to check that there aren't multiple library sets installed? (e.g. find / -name libmyth-0.20.so.0.20.0 -print)

comment:12 Changed 16 years ago by DannyCan@…

Nigel, I am using Ubuntu 7.10 32bit. I did the find command and it only found the libs under my /usr/lib and svn directories.
One thing I should point out is that I used the install procedure located here https://help.ubuntu.com/community/FakeRaidHowto because I have an on-board (fake) RAID setup that I use to dual boot Ubuntu and Windows.
I'm not sure how this would affect MythTV because it worked with 7.04 and back but I just thought I would point it out.
Another thing is that while I was in #ubuntu-users before, I talked to someone that said he was using 7.10 and the MythTV trunk with out any problem so it might be something slightly different about my setup...

comment:13 Changed 16 years ago by Nigel

After finally getting all the dependencies installed, I installed and tested a binary. No problem.
Danny, have you tried with download of someone else's mythfrontend binary or package? Or is it feasible to put your binary and/or libraries somewhere for me to FTP them, and experiment further?

comment:14 Changed 16 years ago by DannyCan@…

Nigel, I just tried the mythbuntu trunk build of mythtv located here http://www.mythbuntu.org/auto-builds at the bottom in the section "Automated Weekly MythTV Trunk Builds". The build is rev14623 and it still failed the same as before.
Then I removed the mythbuntu build and recompiled/installed rev15496 with distclean from today and it still failed. I made a tar of my build for you to see but I don't have access to an FTP server so I will probably have to send it over IRC of you want to take a look at it...

comment:15 Changed 16 years ago by Isaac Richards

Status: newinfoneeded_new

The latest backtrace doesn't have any useful information - please regenerate.

comment:16 Changed 16 years ago by danielk

Milestone: 0.210.22

moving info_needed ticket to 0.22

comment:17 Changed 16 years ago by stuartm

Resolution: invalid
Status: infoneeded_newclosed

Requested information not provided.

Note: See TracTickets for help on using tickets.