Jump to content
  • 0

Linux Launcher issue - Tekkit SMP freezes, takes Xorg with it, need to restart X every time


velusip

Question

Title: Tekkit SMP freezes, takes Xorg with it, need to restart X every time

Version: 3.1.1

OS: Linux 3.4.7-1-ARCH #1 SMP PREEMPT Sun Jul 29 22:02:56 CEST 2012 x86_64 GNU/Linux

Java Version: jre6 6u33-b04

Description of Problem:

After a few minutes or so of SMP play, Tekkit freezes up and takes input with it -- can't switch out of X window using keyboard commands (Ctrl+Alt+f1).

* Tried Oracle jre7, but I can't even type my username and password into the Technic launcher. The fields are unselectable. Oracle jre6 gets passed this and I can get into the game.

* Tried removing .techniclauncher and redownloading all.

* Tried updating nvidia proprietary driver to latest (302.17-4)

After X crashed, I can still log into my host from another and issue a kill on X. Everything closes fine. I remove /tmp/.X11-unix/X0 and run a startx. The weird thing is, even though the old X is completely gone and no sockets are lingering, it creates my display on :1 instead of :0. This isn't a problem -- I just re export DISPLAY and I can start tekkit up again, but it will eventually lock up again. I will rinse and repeat until I've had enough for one night. Each time after the first crash it never listens on DISPLAY :0. It always starts on :1 until I reboot.

Error Messages:

None at all, X completely lock

Error Log:


I need help generating some log.  When I try running techniclauncher from the command line it automatically reboots and detatches from my terminal and the console pipe closes if I try:



java -Xmx3072m -classpath /home/velusip/bin/technic-launcher-latest.jar org.spoutcraft.launcher.Main

3-Aug-2012 6:30:27 PM org.spoutcraft.launcher.Util log

WARNING: Rebooting with [java, -Xmx3072m, -classpath, /home/velusip/bin/technic-launcher-latest.jar, org.spoutcraft.launcher.Main]

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Go back to JRE 7. Did you pick a mod pack? If you don't, the inputs will be grayed out.

Hello Torezu,

Thanks for responding.

* I switched back to the latest JRE7 to test your theory.

* The modpack is selected. I clicked it to make sure. (the dropdown menu works fine)

* The username and password fields are not grayed out nor did they change from selecting the pack.

* I tried selecting a different pack, no change, then went back to tekkit.

The textfields are not selectable/editable.

* I'm trying to tab through the various input fields (dropdowns, buttons, text fields) but tab doesn't do anything to the technic-launcher interface.

* The window is not getting focus, but since I can interact by clicking the dropdown menus and buttons, X11 input is getting passed to the window with x,y coordinate data...so that's a start. X has some control here.

* Trying to paste auth credentials directly under mouse pointer from X11 clipboard -- aha! I can. So I can log in.

However, the window focus issue persists in-game. The Minecraft window is not holding focus, so the game is stuck in the Game Menu with the Back to Game button et cetera. I click on those buttons, but it stays in the Game Menu as it should when the game window lost focus (tabbing out, et cetera).

* I'm going to see if this occurs with vanilla Minecraft before I waste any more of your time.

* Nope, vanilla works fine, so it has something to do with the way technic-launcher establishes an environment.

* Please move this thread into the Technic-launcher bugs forum. I'll continue testing.

I wonder if this has anything to do with my window manager / Java incompatibility. I've previously set my window manager to masquerade as LG3D to avoid another unrelated conflict.

* I'll try setting it back to Xmonad and see if that has an effect. Recompiling xmonad.hs config.

* Okay, now technic-launcher loads a blank/gray window.

* However, when I mouse-over the auth cred fields I see my mouse cursor switch to the text input icon, so it's still "there".

* I will try logging in for kicks.

* Still the same focus problem -- stuck in Game Menu.

However, a happy resolve (sort of) if I hit F11 to fullscreen, the focus issued go away (obviously). So I am able to play with JRE7, in spite of it being a pain to log in blindly.

Summary:

Unable to hand off window focus to Techniclauncher with JRE7 + a non-recognized, non-reparenting window manager in an X11 desktop.

Here is some related reading material: http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#Problems_with_Java_applications.2C_Applet_java_console

Link to comment
Share on other sites

  • 0

Okay, thanks! I couldn't find a list of system prerequisites for technic-launcher, so I'm glad you told me to use JRE7.

I played tekkit for a bit for the first time using JRE7. It did eventually lock up all the same as before. I'm going to delete everything and try again before continuing with the troubleshooting.

I still need help keeping technic-launcher from " rebooting" itself and detatching itself from the terminal so I can log the output.

Can someone help me with that? As in my original post:

java -Xmx3072m -classpath /home/velusip/bin/technic-launcher-latest.jar org.spoutcraft.launcher.Main

3-Aug-2012 6:30:27 PM org.spoutcraft.launcher.Util log

WARNING: Rebooting with [java, -Xmx3072m, -classpath, /home/velusip/bin/technic-launcher-latest.jar, org.spoutcraft.launcher.Main]

Link to comment
Share on other sites

  • 0

Maybe I'll clarify what I need help with:

Problem 1:

When I try to invoke tekkit on the command line, it insists on relaunching itself with particular arguments -- even if I pass these arguments in myself. When it relaunches I can't pipe the stdout to a file for logging. I would consider this a pretty major problem because I need to see the java errors when it crashes.

* Testing environment variable for logging: SERVER_LOG_ROOT

* There are some debug and tracing options controlled via the -XX flag, so perhaps I can mask by java executable with these flags.

* I'll give it a shot. http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#DebuggingOptions

* -XX:ErrorFile=

* I created a little alias that adds these flags, so that's good, now on to the other problem.

Problem 2:

The technic-launcher GUI will not take focus from the window manager.

* I can input my username and password into the text fields via X11's clipboard, but I can't actually type into those fields

* I can press buttons, but since the window immediately loses focus, I can't "unpress" buttons, like the login. It's as if I pressed it, then moved the mouse away from the button.

* This problem does not occur with vanilla minecraft launcher, only technic-launcher.

Is the sourcecode for this launcher available in a repository anywhere? I could fix this myself.

Link to comment
Share on other sites

  • 0

Okay.

After a lot of searching and fiddling with Xmonad config I found a patch in Xmonad contrib that fixes the issue. The problem is a nonstandard focus model used by Xmonad, but this patch provides the rest of the standard. I can now interact with Java Swing-based GUIs using Xmonad.

http://code.google.com/p/xmonad/issues/detail?id=177

see: http://code.google.com/p/xmonad/issues/detail?id=177#c56

I'll leave my config here for future generations to pick at:

Link to comment
Share on other sites

  • 0

This forum hates me, trying again:


import XMonad

import XMonad.Hooks.DynamicLog

import XMonad.Hooks.ManageDocks

import XMonad.Layout

import XMonad.Layout.NoBorders ( noBorders, smartBorders )

import XMonad.Util.Run(spawnPipe)

import XMonad.Util.EZConfig(additionalKeysP)

import System.IO

 

import XMonad.Hooks.EwmhDesktops

import XMonad.Hooks.SetWMName

import XMonad.Hooks.ICCCMFocus

 

myTerminal = "urxvt"

myBorderWidth = 1

myNormalBorderColour = "#000000"

myFocusedBorderColour = "#c050f0" -- purplish

myModMask = mod4Mask -- Finland key

myFocusFollowsMouse = True

myManageHook = manageDocks <+> manageHook defaultConfig

myLayout = avoidStruts $ smartBorders tiled ||| smartBorders (Mirror tiled) ||| noBorders Full

    where

        tiled = Tall nmaster delta tiled_ratio

        nmaster = 1

        delta = 3/100

        tiled_ratio = 1/2

myStartupHook = setWMName "LG3D" -- deek

 

-- media keysyms

-- XF86AudioNext = 0x1008ff17

-- XF86AudioPlay = 0x1008ff14

-- XF86AudioPrev = 0x1008ff16

-- XF86AudioStop = 0x1008ff15

-- XF86AudioRaiseVolume = 0x1008ff13

-- XF86AudioLowerVolume = 0x1008ff11

-- XF86Reload = 0x1008ff73

-- XF86Forward = 0x1008ff27

-- XF86Back = 0x1008ff26

 

 

main = do

    xmproc <- spawnPipe "/usr/bin/xmobar /home/velusip/.xmobarrc"

    xmonad $ defaultConfig {

        terminal = myTerminal,

        borderWidth = myBorderWidth,

        normalBorderColor = myNormalBorderColour,

        focusedBorderColor = myNormalBorderColour,

        modMask = mod4Mask,

        focusFollowsMouse = myFocusFollowsMouse,

 

        -- hooks

        manageHook = myManageHook,

        logHook = do

            takeTopFocus

            dynamicLogWithPP $ xmobarPP

                { ppOutput = hPutStrLn xmproc

                , ppTitle = xmobarColor "green" "" . shorten 50

                }

        , startupHook = myStartupHook

        , layoutHook = myLayout

        } `additionalKeysP`

            [ ("M-S-x", spawn "slock")

            , ("M-b", sendMessage ToggleStruts)

            , ("<XF86AudioNext>", spawn "cmus-remote --next")

            , ("<XF86AudioPlay>", spawn "cmus-remote --pause")

            , ("<XF86AudioPrev>", spawn "cmus-remote --prev")

            , ("<XF86AudioStop>", spawn "cmus-remote --stop")

            , ("<XF86AudioRaiseVolume>", spawn "cmus-remote --volume +10%")

            , ("<XF86AudioLowerVolume>", spawn "cmus-remote --volume -10%")

            , ("<XF86Reload>", spawn "cmus-remote --shuffle")

            , ("<XF86Forward>", spawn "cmus-remote --seek +5")

            , ("<XF86Back>", spawn "cmus-remote --seek -5")

            ]

 

lol

Link to comment
Share on other sites

  • 0

Interesting. This hack to implement the ICCCM focus standard works with Java Swing from jre6, but not correctly/all the time with jre7. It's a known problem and there has been no development toward a fix.

I'm just going to try jre6 for a while and see if I can at least get a few crash logs.

Link to comment
Share on other sites

  • 0

i'm experiencing the same behavior with the vanilla client. i have not evaluated if the solution works for me, but a tip to all those stuck with the same problem: simultaneously press alt+print+r. this releases the keyboard lock held by x, and you can alt+ctrl+f1 to a terminal. also, connecting an external keyboard worked for me.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...