Opened 8 years ago
Closed 8 years ago
Last modified 7 years ago
#12977 closed Developer Task (fixed)
Improved Frontend Startup in case of connection problems
Reported by: | Peter Bennett | Owned by: | Peter Bennett |
---|---|---|---|
Priority: | minor | Milestone: | 29.0 |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description (last modified by )
When starting up the MythTV frontend, if the database is unavailable, the user gets the Country and Language selection page, even if they have previously completed setup. This is confusing to the newcomer and annoying to the experienced user. If the user continues with selecting Country and Language it does not resolve things and leads one down a rat hole.
If the user has set up database WOL, the experience is also not good. There is no feedback while the database is starting up. Nothing is displayed, and it looks as if nothing is happening for however long it takes for the database wakeup.
I plan to add a new MythTV startup page that will be displayed if the database and backend are not immediately available, and if setup was previously done (i.e. config.xml is available). It will wait a reasonable time for the database and for the backend, while showing user messages as to what is happening. After some time if the database and backend are not available it will provide buttons to "Retry", "Setup", or "Exit". Selecting Setup will continue to Database setup so that the user can correct his settings if necessary.
Change History (18)
comment:1 Changed 8 years ago by
Status: | new → accepted |
---|
comment:2 Changed 8 years ago by
comment:3 Changed 8 years ago by
The ping in the database connect startup has been causing some people problems lately, and I think I can improve startup by checking if the database port is open instead of using ping. That way it waits for not only the database machine to start up but for the database port to be ready. Also people could use the "wake up" code to start the database instead of waking the machine (if somebody for some reason wanted the database shutdown when MythTV was not in use).
I have been doing this (using nc) in a bash script in front of Frontend startup for a couple of years with no problems.
comment:4 follow-up: 5 Changed 8 years ago by
Regarding DB ping (whether using mysqladmin -ping, mysql_ping, or homegrown code), please see [5b3aaea9] and the thread at https://lists.gt.net/mythtv/dev/284304 (especially https://lists.gt.net/mythtv/dev/284318#284318 and https://lists.gt.net/mythtv/dev/284319#284319 ). The current approach, pinging the host, while not perfect (since it doesn't detect the DB itself), was meant to be fast--especially when the user misconfigures things. Making a user wait 3min at initial setup only to be told the database couldn't be contacted would make initial setup even more frustrating. Also, many first-time users tend to put the MythTV backend port into the MySQL port box, so any test you do needs to be sure to not crash (or cause problems--client or server side) when it hits a non-MySQL port.
That said, once initial (interactive) configuration is done, I'm a big fan of the just-do-it approach (i.e. don't check to make sure things still work--instead just do what we're told and fail/shut down if it doesn't work). That said, in this world of systemd and "shotgun start everything, assuming order is irrelevant", I seem to be one of the few who's willing to consider a proper system configuration and working prerequisites as a startup requirement. (In other words, I don't mind if things change, but wanted to mention the how we got to where we are backstory.)
comment:5 Changed 8 years ago by
Replying to mdean:
Also, many first-time users tend to put the MythTV backend port into the MySQL port box, so any test you do needs to be sure to not crash (or cause problems--client or server side) when it hits a non-MySQL port.
This is a problematic one. If you put the backend port 6543 as the database port with the current MythTV the frontend startup just hangs forever, with no GUI displayed. It is stuck in some receive logic inside the SQL driver trying to open the database. I am not sure the best way to fix that. There does not appear to be any timeout ability in the MYSQL connect.
I looked at the other links. the code in [5b3aaea9] has been considerably changed since it was added, and I am completely revamping it now. The mailing list links with topics around the ping will be completely solved, since will be checking a specific port with a QT Socket instead of doing a ping.
I am making some good progress. Opening a socket of the expected port, with a short timeout in case of failure, seems to be giving good results and I have a frontend page with a progress bar showing what it is doing as far as waiting to database to wake up, waiting for database to start, waiting for backend to wake up, etc.
comment:7 Changed 8 years ago by
I have also added code to cache some basic settings- theme and language- in the cache subdirectory of the local config directory. If the user starts the frontend when the database or backend are not accessible he will get a screen showing the status and progress, in his most recent selected theme and language.
comment:8 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:11 Changed 8 years ago by
Peter, r313 still gives me language selection screen. Here is log from starting FE when language screen is displayed:
root@FE-IntelNUC:~ # /usr/bin/mythfrontend.sh 2017-02-13 09:34:35.037054 I Setup Interrupt handler 2017-02-13 09:34:35.037087 I Setup Terminated handler 2017-02-13 09:34:35.037094 I Setup Segmentation fault handler 2017-02-13 09:34:35.037100 I Setup Aborted handler 2017-02-13 09:34:35.037105 I Setup Bus error handler 2017-02-13 09:34:35.037110 I Setup Floating point exception handler 2017-02-13 09:34:35.037115 I Setup Illegal instruction handler 2017-02-13 09:34:35.037122 I Setup Real-time signal 0 handler 2017-02-13 09:34:35.037128 I Setup User defined signal 1 handler 2017-02-13 09:34:35.037134 I Setup User defined signal 2 handler 2017-02-13 09:34:35.037138 I Setup Hangup handler 2017-02-13 09:34:35.037290 C mythfrontend version: master [v29-pre-313-ge9daa4e] www.mythtv.org 2017-02-13 09:34:35.037297 C Qt version: compile: 5.4.1, runtime: 5.4.1 2017-02-13 09:34:35.037301 N Enabled verbose msgs: general libav playback audio 2017-02-13 09:34:35.037400 N Setting Log Level to LOG_DEBUG 2017-02-13 09:34:35.047897 I Added logging to the console 2017-02-13 09:34:35.047907 N Using runtime prefix = /usr 2017-02-13 09:34:35.047912 N Using configuration directory = /home/minimyth/.mythtv 2017-02-13 09:34:35.047915 D appbindir = /usr/bin/ 2017-02-13 09:34:35.047918 D sharedir = /usr/share/mythtv/ 2017-02-13 09:34:35.047920 D libdir = /usr/lib/mythtv/ 2017-02-13 09:34:35.047923 D themedir = /usr/share/mythtv/themes/ 2017-02-13 09:34:35.047924 D pluginsdir = /usr/lib/mythtv/plugins/ 2017-02-13 09:34:35.047940 D translationsdir= /usr/share/mythtv/i18n/ 2017-02-13 09:34:35.047941 D filtersdir = /usr/lib/mythtv/filters/ 2017-02-13 09:34:35.047999 I Assumed character encoding: en_US.UTF-8 2017-02-13 09:34:35.048509 N Empty LocalHostName. 2017-02-13 09:34:35.048517 I Using localhost value of FE-IntelNUC 2017-02-13 09:34:35.048569 I Start up testing connections. DB 192.168.1.254, BE , attempt 0, status dbAwake 2017-02-13 09:34:35.048574 D host 192.168.1.254 port 3306 timeLimit 1 2017-02-13 09:34:35.148488 I Added logging to /tmp/mythfrontend.20170213083435.7792.log 2017-02-13 09:34:35.549054 D socket state 2 2017-02-13 09:34:36.049433 D socket state 3 2017-02-13 09:34:36.069058 D host 192.168.1.254 port 6543 timeLimit 1 2017-02-13 09:34:36.569262 D socket state 2 2017-02-13 09:34:37.069476 D socket state 3 2017-02-13 09:34:37.085250 D FindDatabase() - Success! 2017-02-13 09:34:37.091508 N Setting QT default locale to pl_PL 2017-02-13 09:34:37.091523 I Current locale pl_PL 2017-02-13 09:34:37.091572 E No locale defaults file for pl_PL, skipping 2017-02-13 09:34:37.091680 I Loading en_us translation for module mythfrontend 2017-02-13 09:34:37.091918 I Starting process manager 2017-02-13 09:34:37.091941 I Starting process signal handler 2017-02-13 09:34:37.091965 I Starting IO manager (read) 2017-02-13 09:34:37.091983 I Starting IO manager (write) 2017-02-13 09:34:37.142297 I ScreenSaverX11Private: XScreenSaver support enabled 2017-02-13 09:34:37.143203 I ScreenSaverX11Private: DPMS is disabled. 2017-02-13 09:34:37.150994 N Desktop video mode: 1280x1024 60.020 Hz 2017-02-13 09:34:37.152267 I max_width: 1280 max_height: 1024 2017-02-13 09:34:37.177687 D Adding IPv4 loopback to address list. 2017-02-13 09:34:37.177726 D Adding '192.168.1.133' to address list. 2017-02-13 09:34:37.177820 I Listening on TCP 127.0.0.1:6547 2017-02-13 09:34:37.177848 I Listening on TCP 192.168.1.133:6547 2017-02-13 09:34:37.179377 D MMulticastSocketDevice(:24): setsockopt - IP_MULTICAST_IF eno: Cannot assign requested address (99) 2017-02-13 09:34:37.320731 D MMulticastSocketDevice(:24): setsockopt - IP_MULTICAST_IF eno: Cannot assign requested address (99) 2017-02-13 09:34:37.339426 I Loading en_us translation for module mythfrontend 2017-02-13 09:34:37.339860 N Desktop video mode: 1280x1024 60.020 Hz 2017-02-13 09:34:37.339918 I max_width: 1280 max_height: 1024 2017-02-13 09:34:37.339951 I Changing to 1920x1080 0.000 Hz 2017-02-13 09:34:37.339956 E Desired Resolution and FrameRate not found. 2017-02-13 09:34:37.339961 E SwitchToGUI: xrandr failed for 1920x1080 0.000 Hz 2017-02-13 09:34:37.343308 I LIRC: Successfully initialized '/dev/lircd' using '/home/minimyth/.mythtv/lircrc' config 2017-02-13 09:34:37.343340 I UDPListener: Enabling 2017-02-13 09:34:37.343470 I Binding to UDP 127.0.0.1:6948 2017-02-13 09:34:37.343498 I Binding to UDP 192.168.1.133:6948 2017-02-13 09:34:37.343522 I Binding to UDP 192.168.1.255:6948 2017-02-13 09:34:37.356466 I Using Frameless Window 2017-02-13 09:34:37.356471 I Using Full Screen Window 2017-02-13 09:34:37.367538 I UI Screen Resolution: 1280 x 1024 2017-02-13 09:34:37.429023 W OpenGL: Could not determine whether Sync to VBlank is enabled. 2017-02-13 09:34:37.433315 I Trying the OpenGL 2.0 render 2017-02-13 09:34:37.433480 I OpenGL painter using existing OpenGL context. 2017-02-13 09:34:37.439877 I OpenGL2: GLSL supported 2017-02-13 09:34:37.439926 I OpenGL: OpenGL vendor : Intel Open Source Technology Center 2017-02-13 09:34:37.439931 I OpenGL: OpenGL renderer: Mesa DRI Intel(R) Ivybridge Mobile 2017-02-13 09:34:37.439934 I OpenGL: OpenGL version : 3.0 Mesa 13.0.4 2017-02-13 09:34:37.439940 I OpenGL: Max texture size: 8192 x 8192 2017-02-13 09:34:37.439943 I OpenGL: Max texture units: 8 2017-02-13 09:34:37.439948 I OpenGL: Direct rendering: Yes 2017-02-13 09:34:37.439953 I OpenGL: Extensions Supported: 1e1b 2017-02-13 09:34:37.439956 I OpenGL: PixelBufferObject support available 2017-02-13 09:34:37.439976 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; } 2017-02-13 09:34:37.439982 D #version 110 varying vec4 v_color; void main(void) { gl_FragColor = v_color; } 2017-02-13 09:34:37.441907 D #version 110 attribute vec2 a_position; attribute vec4 a_color; attribute vec2 a_texcoord0; varying vec4 v_color; varying vec2 v_texcoord0; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_texcoord0 = a_texcoord0; v_color = a_color; } 2017-02-13 09:34:37.441916 D #version 110 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect s_texture0; varying vec4 v_color; varying vec2 v_texcoord0; void main(void) { gl_FragColor = texture2DRect(s_texture0, v_texcoord0) * v_color; } 2017-02-13 09:34:37.447566 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:34:37.447575 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float mult = smoothstep(u_parameters[0].z, u_parameters[0].w, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:34:37.450899 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:34:37.450906 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float rad = u_parameters[0].z; float wid = u_parameters[0].w; float mult = smoothstep(rad + wid, rad + (wid - 1.0), dis) * smoothstep(rad - (wid + 1.0), rad - wid, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:34:37.455006 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:34:37.455013 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.x); float y = u_parameters[0].y * 2.0; float mult = smoothstep(y, y - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:34:37.459189 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:34:37.459201 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.y); float x = u_parameters[0].y * 2.0; float mult = smoothstep(x, x - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:34:37.462839 I OpenGL: Initialised MythRenderOpenGL 2017-02-13 09:34:38.256100 D Copying DLManager's Cookie Jar 2017-02-13 09:34:38.316628 D MythCookieJar: loading cookies from: /home/minimyth/.mythtv/MythBrowser/cookiejar.txt 2017-02-13 09:34:38.318284 I MythUIWebBrowser: Loading css from - file:///usr/share/mythtv/themes/default/htmls/mythbrowser.css 2017-02-13 09:34:38.319180 I MythUIWebBrowser: enabling plugins 2017-02-13 09:34:38.328630 I MythCoreContext::ConnectCommandSocket(): Connecting to backend server: 192.168.1.254:6543 (try 1 of 1) 2017-02-13 09:34:38.330294 I MythCoreContext::CheckProtoVersion(): Using protocol version 91 BuzzOff 2017-02-13 09:34:38.384687 D RAOP Conn: Loaded RSA private key (1) 2017-02-13 09:34:38.384926 I RAOP Device: Created RAOP device objects. 2017-02-13 09:34:38.384979 I AirPlay: Created airplay objects. 2017-02-13 09:34:38.394136 I Listening on TCP 127.0.0.1:5100 2017-02-13 09:34:38.394178 I Listening on TCP 192.168.1.133:5100 2017-02-13 09:34:38.406028 I Listening on TCP 127.0.0.1:5000 2017-02-13 09:34:38.406075 I Listening on TCP 192.168.1.133:5000 2017-02-13 09:34:38.406086 I RAOP Device: Listening for connections on port 5000 2017-02-13 09:34:38.406151 I Registering service 6d216c41595a@MythTV on FE-IntelNUC._raop._tcp port 5000 TXT tp=UDsm=falssv=falseek=1et=0,1cn=0,1ch=2ss=1sr=4410pw=falsevn=3 txtvers=md=0,1,vs=115.2da=true am=MythTV,1 2017-02-13 09:34:38.417068 I Bonjour: Service registration complete: name 'Mythfrontend on FE-IntelNUC' type '_mythfrontend._tcp.' domain: 'local.' 2017-02-13 09:34:38.494198 I System Locale (pl_PL), Country (PL), Language (pl) 2017-02-13 09:34:39.343080 I Bonjour: Service registration complete: name 'MythTV on FE-IntelNUC' type '_airplay._tcp.' domain: 'local.' 2017-02-13 09:34:39.352640 I Bonjour: Service registration complete: name '6d216c41595a@MythTV on FE-IntelNUC' type '_raop._tcp.' domain: 'local.'
comment:12 Changed 8 years ago by
Selecting language and country and pressing save gives however segfault:
2017-02-13 09:42:58.977443 I Setup Interrupt handler 2017-02-13 09:42:58.977476 I Setup Terminated handler 2017-02-13 09:42:58.977483 I Setup Segmentation fault handler 2017-02-13 09:42:58.977489 I Setup Aborted handler 2017-02-13 09:42:58.977493 I Setup Bus error handler 2017-02-13 09:42:58.977499 I Setup Floating point exception handler 2017-02-13 09:42:58.977504 I Setup Illegal instruction handler 2017-02-13 09:42:58.977511 I Setup Real-time signal 0 handler 2017-02-13 09:42:58.977517 I Setup User defined signal 1 handler 2017-02-13 09:42:58.977522 I Setup User defined signal 2 handler 2017-02-13 09:42:58.977527 I Setup Hangup handler 2017-02-13 09:42:58.977674 C mythfrontend version: master [v29-pre-313-ge9daa4e] www.mythtv.org 2017-02-13 09:42:58.977682 C Qt version: compile: 5.4.1, runtime: 5.4.1 2017-02-13 09:42:58.977685 N Enabled verbose msgs: general playback audio 2017-02-13 09:42:58.977704 N Setting Log Level to LOG_DEBUG 2017-02-13 09:42:58.988483 I Added logging to the console 2017-02-13 09:42:58.988534 N Using runtime prefix = /usr 2017-02-13 09:42:58.988540 N Using configuration directory = /home/minimyth/.mythtv 2017-02-13 09:42:58.988544 D appbindir = /usr/bin/ 2017-02-13 09:42:58.988547 D sharedir = /usr/share/mythtv/ 2017-02-13 09:42:58.988551 D libdir = /usr/lib/mythtv/ 2017-02-13 09:42:58.988553 D themedir = /usr/share/mythtv/themes/ 2017-02-13 09:42:58.988556 D pluginsdir = /usr/lib/mythtv/plugins/ 2017-02-13 09:42:58.988560 D translationsdir= /usr/share/mythtv/i18n/ 2017-02-13 09:42:58.988562 D filtersdir = /usr/lib/mythtv/filters/ 2017-02-13 09:42:58.988653 I Assumed character encoding: en_US.UTF-8 2017-02-13 09:42:58.989289 N Empty LocalHostName. 2017-02-13 09:42:58.989297 I Using localhost value of FE-IntelNUC 2017-02-13 09:42:58.989352 I Start up testing connections. DB 192.168.1.254, BE , attempt 0, status dbAwake 2017-02-13 09:42:58.989358 D host 192.168.1.254 port 3306 timeLimit 1 2017-02-13 09:42:59.489847 D socket state 2 2017-02-13 09:42:59.990201 D socket state 3 [New LWP 7873] [LWP 7873 exited] 2017-02-13 09:43:00.114419 D host 192.168.1.254 port 6543 timeLimit 1 2017-02-13 09:43:00.614678 D socket state 2 2017-02-13 09:43:01.114898 D socket state 3 2017-02-13 09:43:01.130982 D FindDatabase() - Success! 2017-02-13 09:43:01.137518 N Setting QT default locale to pl_PL 2017-02-13 09:43:01.137535 I Current locale pl_PL 2017-02-13 09:43:01.137584 E No locale defaults file for pl_PL, skipping 2017-02-13 09:43:01.137692 I Loading en_us translation for module mythfrontend 2017-02-13 09:43:01.138033 I Starting process manager 2017-02-13 09:43:01.138125 I Starting process signal handler 2017-02-13 09:43:01.138251 I Starting IO manager (read) 2017-02-13 09:43:01.138325 I Starting IO manager (write) 2017-02-13 09:43:01.188508 I ScreenSaverX11Private: XScreenSaver support enabled 2017-02-13 09:43:01.189588 I ScreenSaverX11Private: DPMS is disabled. 2017-02-13 09:43:01.197892 N Desktop video mode: 1280x1024 60.020 Hz 2017-02-13 09:43:01.198752 I max_width: 1280 max_height: 1024 2017-02-13 09:43:01.223855 D Adding IPv4 loopback to address list. 2017-02-13 09:43:01.223893 D Adding '192.168.1.133' to address list. 2017-02-13 09:43:01.223993 I Listening on TCP 127.0.0.1:6547 2017-02-13 09:43:01.224016 I Listening on TCP 192.168.1.133:6547 2017-02-13 09:43:01.225828 D MMulticastSocketDevice(:27): setsockopt - IP_MULTICAST_IF eno: Cannot assign requested address (99) 2017-02-13 09:43:01.414167 D MMulticastSocketDevice(:27): setsockopt - IP_MULTICAST_IF eno: Cannot assign requested address (99) 2017-02-13 09:43:01.431578 I Loading en_us translation for module mythfrontend 2017-02-13 09:43:01.432243 N Desktop video mode: 1280x1024 60.020 Hz 2017-02-13 09:43:01.432300 I max_width: 1280 max_height: 1024 2017-02-13 09:43:01.432336 I Changing to 1920x1080 0.000 Hz 2017-02-13 09:43:01.432341 E Desired Resolution and FrameRate not found. 2017-02-13 09:43:01.432346 E SwitchToGUI: xrandr failed for 1920x1080 0.000 Hz 2017-02-13 09:43:01.435663 I LIRC: Successfully initialized '/dev/lircd' using '/home/minimyth/.mythtv/lircrc' config 2017-02-13 09:43:01.435788 I UDPListener: Enabling 2017-02-13 09:43:01.435944 I Binding to UDP 127.0.0.1:6948 2017-02-13 09:43:01.435977 I Binding to UDP 192.168.1.133:6948 2017-02-13 09:43:01.435999 I Binding to UDP 192.168.1.255:6948 2017-02-13 09:43:01.448895 I Using Frameless Window 2017-02-13 09:43:01.448899 I Using Full Screen Window 2017-02-13 09:43:01.550746 I UI Screen Resolution: 1280 x 1024 2017-02-13 09:43:02.220956 W OpenGL: Could not determine whether Sync to VBlank is enabled. 2017-02-13 09:43:02.225383 I Trying the OpenGL 2.0 render 2017-02-13 09:43:02.225551 I OpenGL painter using existing OpenGL context. 2017-02-13 09:43:02.232125 I OpenGL2: GLSL supported 2017-02-13 09:43:02.232174 I OpenGL: OpenGL vendor : Intel Open Source Technology Center 2017-02-13 09:43:02.232179 I OpenGL: OpenGL renderer: Mesa DRI Intel(R) Ivybridge Mobile 2017-02-13 09:43:02.232183 I OpenGL: OpenGL version : 3.0 Mesa 13.0.4 2017-02-13 09:43:02.232189 I OpenGL: Max texture size: 8192 x 8192 2017-02-13 09:43:02.232192 I OpenGL: Max texture units: 8 2017-02-13 09:43:02.232196 I OpenGL: Direct rendering: Yes 2017-02-13 09:43:02.232201 I OpenGL: Extensions Supported: 1e1b 2017-02-13 09:43:02.232204 I OpenGL: PixelBufferObject support available 2017-02-13 09:43:02.232224 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; } 2017-02-13 09:43:02.232229 D #version 110 varying vec4 v_color; void main(void) { gl_FragColor = v_color; } 2017-02-13 09:43:02.234157 D #version 110 attribute vec2 a_position; attribute vec4 a_color; attribute vec2 a_texcoord0; varying vec4 v_color; varying vec2 v_texcoord0; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_texcoord0 = a_texcoord0; v_color = a_color; } 2017-02-13 09:43:02.234166 D #version 110 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect s_texture0; varying vec4 v_color; varying vec2 v_texcoord0; void main(void) { gl_FragColor = texture2DRect(s_texture0, v_texcoord0) * v_color; } 2017-02-13 09:43:02.239783 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:02.239792 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float mult = smoothstep(u_parameters[0].z, u_parameters[0].w, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:02.243088 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:02.243095 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float rad = u_parameters[0].z; float wid = u_parameters[0].w; float mult = smoothstep(rad + wid, rad + (wid - 1.0), dis) * smoothstep(rad - (wid + 1.0), rad - wid, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:02.247225 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:02.247232 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.x); float y = u_parameters[0].y * 2.0; float mult = smoothstep(y, y - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:02.250615 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:02.250622 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.y); float x = u_parameters[0].y * 2.0; float mult = smoothstep(x, x - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:02.254032 I OpenGL: Initialised MythRenderOpenGL 2017-02-13 09:43:03.034978 D Copying DLManager's Cookie Jar 2017-02-13 09:43:03.085634 D MythCookieJar: loading cookies from: /home/minimyth/.mythtv/MythBrowser/cookiejar.txt 2017-02-13 09:43:03.087560 I MythUIWebBrowser: Loading css from - file:///usr/share/mythtv/themes/default/htmls/mythbrowser.css 2017-02-13 09:43:03.088469 I MythUIWebBrowser: enabling plugins 2017-02-13 09:43:03.098917 I MythCoreContext::ConnectCommandSocket(): Connecting to backend server: 192.168.1.254:6543 (try 1 of 1) 2017-02-13 09:43:03.100472 I MythCoreContext::CheckProtoVersion(): Using protocol version 91 BuzzOff 2017-02-13 09:43:03.157000 D RAOP Conn: Loaded RSA private key (1) 2017-02-13 09:43:03.161043 I RAOP Device: Created RAOP device objects. 2017-02-13 09:43:03.161265 I Listening on TCP 127.0.0.1:5000 2017-02-13 09:43:03.161302 I Listening on TCP 192.168.1.133:5000 2017-02-13 09:43:03.161311 I RAOP Device: Listening for connections on port 5000 2017-02-13 09:43:03.161386 I Registering service 6d216c41595a@MythTV on FE-IntelNUC._raop._tcp port 5000 TXT tp=UDsm=falssv=falseek=1et=0,1cn=0,1ch=2ss=1sr=4410pw=falsevn=3 txtvers=md=0,1,vs=115.2da=true am=MythTV,1 2017-02-13 09:43:03.161648 I AirPlay: Created airplay objects. 2017-02-13 09:43:03.174313 I Listening on TCP 127.0.0.1:5100 2017-02-13 09:43:03.174359 I Listening on TCP 192.168.1.133:5100 2017-02-13 09:43:03.199299 I Bonjour: Service registration complete: name 'Mythfrontend on FE-IntelNUC' type '_mythfrontend._tcp.' domain: 'local.' 2017-02-13 09:43:03.274623 I System Locale (pl_PL), Country (PL), Language (pl) 2017-02-13 09:43:04.064817 I Bonjour: Service registration complete: name '6d216c41595a@MythTV on FE-IntelNUC' type '_raop._tcp.' domain: 'local.' 2017-02-13 09:43:04.077260 I Bonjour: Service registration complete: name 'MythTV on FE-IntelNUC' type '_airplay._tcp.' domain: 'local.' 2017-02-13 09:43:10.114174 N Setting QT default locale to pl_PL 2017-02-13 09:43:10.114268 I Loading pl translation for module mythfrontend 2017-02-13 09:43:10.114829 N Desktop video mode: 1280x1024 60.020 Hz 2017-02-13 09:43:10.114886 I max_width: 1280 max_height: 1024 2017-02-13 09:43:10.114904 I Changing to 1920x1080 0.000 Hz 2017-02-13 09:43:10.114909 E Desired Resolution and FrameRate not found. 2017-02-13 09:43:10.114914 E SwitchToGUI: xrandr failed for 1920x1080 0.000 Hz 2017-02-13 09:43:10.121111 I Using Frameless Window 2017-02-13 09:43:10.121117 I Using Full Screen Window 2017-02-13 09:43:10.121147 I UI Screen Resolution: 1280 x 1024 2017-02-13 09:43:10.157522 W OpenGL: Could not determine whether Sync to VBlank is enabled. 2017-02-13 09:43:10.159580 I Trying the OpenGL 2.0 render 2017-02-13 09:43:10.159620 I OpenGL painter using existing OpenGL context. 2017-02-13 09:43:10.163477 I OpenGL2: GLSL supported 2017-02-13 09:43:10.163511 I OpenGL: PixelBufferObject support available 2017-02-13 09:43:10.163524 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; } 2017-02-13 09:43:10.163529 D #version 110 varying vec4 v_color; void main(void) { gl_FragColor = v_color; } 2017-02-13 09:43:10.165425 D #version 110 attribute vec2 a_position; attribute vec4 a_color; attribute vec2 a_texcoord0; varying vec4 v_color; varying vec2 v_texcoord0; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_texcoord0 = a_texcoord0; v_color = a_color; } 2017-02-13 09:43:10.165434 D #version 110 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect s_texture0; varying vec4 v_color; varying vec2 v_texcoord0; void main(void) { gl_FragColor = texture2DRect(s_texture0, v_texcoord0) * v_color; } 2017-02-13 09:43:10.167942 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:10.167949 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float mult = smoothstep(u_parameters[0].z, u_parameters[0].w, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:10.171160 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:10.171167 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = distance(v_position.xy, u_parameters[0].xy); float rad = u_parameters[0].z; float wid = u_parameters[0].w; float mult = smoothstep(rad + wid, rad + (wid - 1.0), dis) * smoothstep(rad - (wid + 1.0), rad - wid, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:10.175210 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:10.175216 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.x); float y = u_parameters[0].y * 2.0; float mult = smoothstep(y, y - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:10.179142 D #version 110 attribute vec2 a_position; attribute vec4 a_color; varying vec4 v_color; varying vec2 v_position; uniform mat4 u_projection; uniform mat4 u_transform; void main() { gl_Position = u_projection * u_transform * vec4(a_position, 0.0, 1.0); v_color = a_color; v_position = a_position; } 2017-02-13 09:43:10.179150 D #version 110 varying vec4 v_color; varying vec2 v_position; uniform mat4 u_parameters; void main(void) { float dis = abs(u_parameters[0].x - v_position.y); float x = u_parameters[0].y * 2.0; float mult = smoothstep(x, x - 0.1, dis) * smoothstep(-0.1, 0.0, dis); gl_FragColor = v_color * vec4(1.0, 1.0, 1.0, mult); } 2017-02-13 09:43:10.182580 I OpenGL: Initialised MythRenderOpenGL 2017-02-13 09:43:10.202814 I MythUIWebBrowser: Loading css from - file:///usr/share/mythtv/themes/default/htmls/mythbrowser.css 2017-02-13 09:43:10.203662 I MythUIWebBrowser: enabling plugins 2017-02-13 09:43:10.257001 W MythPainter: 10 images not yet de-allocated. 2017-02-13 09:43:10.257022 I Clearing OpenGL painter cache. 2017-02-13 09:43:10.257476 I OpenGL2: Deleting OpenGL Resources 2017-02-13 09:43:10.258082 I OpenGL: Deleting OpenGL Resources 2017-02-13 09:43:10.258729 D Refreshing DLManager's Cookie Jar 2017-02-13 09:43:10.258759 D MythCookieJar: saving cookies to: /home/minimyth/.mythtv/MythBrowser/cookiejar.txt 2017-02-13 09:43:10.258760 D Updating DLManager's Cookie Jar Program received signal SIGSEGV, Segmentation fault. 0x00007fd4b6441792 in QMap<QString, MythPlugin*>::detach (this=0x8) at /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h:364 364 /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h: No such file or directory. Thread 1 (LWP 7865): #0 0x00007fd4b6441792 in QMap<QString, MythPlugin*>::detach (this=0x8) at /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h:364 No locals. #1 0x00007fd4b6441214 in QMap<QString, MythPlugin*>::end (this=0x8) at /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h:530 No locals. #2 0x00007fd4b6440b5c in MythPluginManager::GetPlugin (this=0x0, plugname=...) at mythplugin.cpp:239 newname = {static null = {<No data fields>}, d = 0x2ad9220} #3 0x00007fd4b5f45493 in MythThemedMenu::findDepends (this=0x2a7a530, fileList=...) at myththemedmenu.cpp:885 filename = {static null = {<No data fields>}, d = 0x9b9020 <QArrayData::shared_null>} plugin = 0x7fff6aca3b90 it = {i = 0x2aaae70} files = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = -1}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x2aaae60}, d = 0x2aaae60}}, <No data fields>} filename = {static null = {<No data fields>}, d = 0x9b9020 <QArrayData::shared_null>} pluginManager = 0x0 #4 0x00007fd4b5f4086c in MythThemedMenu::parseThemeButton (this=0x2a7a530, element=...) at myththemedmenu.cpp:511 info = {<QDomNode> = {impl = 0x296b470}, <No data fields>} child = {impl = 0x296b470} type = {static null = {<No data fields>}, d = 0x2af4d70} text = {static null = {<No data fields>}, d = 0x2169e30} action = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = -1}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x2a20630}, d = 0x2a20630}}, <No data fields>} alttext = {static null = {<No data fields>}, d = 0x9b9020 <QArrayData::shared_null>} description = {static null = {<No data fields>}, d = 0x2a205c0} password = {static null = {<No data fields>}, d = 0x9b9020 <QArrayData::shared_null>} addit = true __FUNCTION__ = "parseThemeButton" #5 0x00007fd4b5f42869 in MythThemedMenu::parseMenu (this=0x2a7a530, menuname=...) at myththemedmenu.cpp:647 e = {<QDomNode> = {impl = 0x2a70e90}, <No data fields>} filename = {static null = {<No data fields>}, d = 0x299a780} doc = {<QDomNode> = {impl = 0x297ce80}, <No data fields>} f = <incomplete type> __FUNCTION__ = "parseMenu" errorMsg = {static null = {<No data fields>}, d = 0x9b9020 <QArrayData::shared_null>} errorLine = 0 errorColumn = 0 docElem = {<QDomNode> = {impl = 0x2a983b0}, <No data fields>} n = {impl = 0x2a70e90} #6 0x00007fd4b5f3e021 in MythThemedMenu::SetMenuTheme (this=0x2a7a530, menufile=...) at myththemedmenu.cpp:141 No locals. #7 0x00007fd4b5f3de5d in MythThemedMenu::MythThemedMenu (this=0x2a7a530, cdir=..., menufile=..., parent=0x2af4080, name=..., allowreorder=false, state=0x0) at myththemedmenu.cpp:111 No locals. #8 0x000000000045f376 in RunMenu (themedir=..., themename=...) at main.cpp:1139 tmp = {static MaxSize = 1073741800, d = 0x1e24a10} __FUNCTION__ = "RunMenu" #9 0x0000000000461093 in reloadTheme () at main.cpp:1376 themename = {static null = {<No data fields>}, d = 0x2d6a410} themedir = {static null = {<No data fields>}, d = 0x2c05820} __FUNCTION__ = "reloadTheme" #10 0x0000000000467843 in main (argc=5, argv=0x7fff6aca4f48) at main.cpp:1963 bPromptForBackend = false bBypassAutoDiscovery = false cmdline = {<MythCommandLineParser> = {_vptr.MythCommandLineParser = 0x9aa9d8 <vtable for MythFrontendCommandLineParser+16>, m_appname = {static null = {<No data fields>}, d = 0x1d35660}, m_optionedArgs = {d = 0x1d35ce0}, m_namedArgs = {d = 0x1d35c50}, m_passthroughActive = false, m_overridesImported = true, m_verbose = false}, <No data fields>} callCleanup = {m_cleanFunction = 0x459881 <(anonymous namespace)::cleanup()>} signallist = {<QListSpecialMethods<int>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = -1}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x1d93aa0}, d = 0x1d93aa0}} retval = 0 ResetSettings = false __FUNCTION__ = "main" fileprefix = {static null = {<No data fields>}, d = 0x1da76b0} dir = {d_ptr = {d = 0x1f8f680}} bonjour = {d = 0x1f8cff0} themename = {static null = {<No data fields>}, d = 0x1f9f5c0} themedir = {static null = {<No data fields>}, d = 0x1f9e0e0} mainWindow = 0x1f9c820 mon = 0x6c51e6 <__do_global_ctors_aux+38> networkControl = 0x7fff6aca4e50 themeUpdateChecker = 0x45296f <_init+31> sysEventHandler = 0x469e4f <_GLOBAL__sub_I_main()+19> bcm = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x9ba8a0 <QObject::staticMetaObject>, stringdata = 0x7033c0 <qt_meta_stringdata_BackendConnectionManager>, data = 0x703440 <qt_meta_data_BackendConnectionManager>, static_metacall = 0x6bd23e <BackendConnectionManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_reconnecting = 0x7fff6aca45f0, m_reconnect_timer = 0x7c, m_reconnect_again = 120} housekeeping = 0x7fff6aca4df0 ret = 0 (gdb)
comment:13 Changed 8 years ago by
Once you see the message "FindDatabase() - Success!" it has got to the end of the changes I made for startup. Your problem seems to happen after that.
It looks like startup was successful so I don't know why you are seeing the country and language selection.
I tried many things to reproduce your error, but everything is working fine for me.
What architecture do you build for? Can I get your package and install it?
comment:14 Changed 8 years ago by
Thread 1 (LWP 7865): #0 0x00007fd4b6441792 in QMap<QString, MythPlugin*>::detach (this=0x8) at /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h:364 No locals. #1 0x00007fd4b6441214 in QMap<QString, MythPlugin*>::end (this=0x8) at /home/piotro/minimyth-dev/images/main/usr/lib/qt5/include/QtCore/qmap.h:530 No locals. #2 0x00007fd4b6440b5c in MythPluginManager::GetPlugin (this=0x0, plugname=...) at mythplugin.cpp:239 newname = {static null = {<No data fields>}, d = 0x2ad9220}
This looks like a use after free problem. Note (this=0x0) on line 2.
Regards Stuart
comment:15 Changed 8 years ago by
It looks like the seg fault is related to plugins. I built the latest master and plugins, and I still do not get your error. Frontend starts fine, the plugins show up in the menus.
comment:16 Changed 8 years ago by
Peter, I rebuild with current master and.....it works. Let me test a bit more - but so far it seems work well now :-)
comment:18 Changed 7 years ago by
Owner: | changed from Peter Bennett to Peter Bennett |
---|
I am thinking of adding DBus based support to verify that the relevant network interfaces are up.
This would help the case when the OS is on SSD and the frontend is started at boot times, this often results in the network not being up when the frontend starts up, and you end up in the situation you are describing.