pauleve/docker-mtgo

Game Hangs for a few seconds most actions

JeffHoogland opened this issue · 31 comments

Since the MTGO update last week on almost every game action the whole client locks up for a few moments.

Anyone else seeing this or just on my end?

I just played a game and I didn't experienced any lag...

Anything I can do to help debug? It is so bad on my system that I've gone back to using a VM for the time being.

Have you updated the docker image recently? ./run-mtgo --update
If yes, you can try with an older image, e.g., ./run-mtgo panard/mtgo:2019-08-18

Any improvement with latest image? Have you changed anything regarding your docker setup? (check the Storage driver with docker info)

Experiencing the same issue with the latest image on Ubuntu 18.04. At least 5 seconds of lag on every action, making it almost impossible to win matches that go to game 3.

Interesting... Can you paste the output of docker info?

Client:
 Debug Mode: false

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 4
 Server Version: 19.03.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.15.0-72-generic
 Operating System: Ubuntu 18.04.3 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 15.56GiB
 Name: pillar-of-autumn
 ID: HE4E:VMEX:EVQC:LHAD:JLL2:6OST:PCFQ:AHMW:642M:4CUG:S7P6:YG52
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

Thanks. Two directions :

  • try with an older docker image: ./run-mtgo panard/mtgo:2019-07-09
  • paste the output of ./run-mtgo --debug after some lagging actions

./run-mtgo --debug output from one match on the latest image:

006a:fixme:wmp:WMPNetwork_get_downloadProgress stub: Returning download progress 100
006a:fixme:wmp:WMPNetwork_get_bufferingProgress stub: Returning buffering progress 100
006a:fixme:wmp:WMPNetwork_get_downloadProgress stub: Returning download progress 100
006a:fixme:wmp:WMPNetwork_get_bufferingProgress stub: Returning buffering progress 100
006a:fixme:wmp:WMPNetwork_get_downloadProgress stub: Returning download progress 100
006a:fixme:wmp:WMPNetwork_get_bufferingProgress stub: Returning buffering progress 100
006a:fixme:wmp:WMPNetwork_get_downloadProgress stub: Returning download progress 100
006a:fixme:wmp:WMPNetwork_get_bufferingProgress stub: Returning buffering progress 100
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
0051:fixme:wincodecs:FlipRotator_CopyPixels flipping x and rotating are not implemented
006a:fixme:wmp:WMPNetwork_get_downloadProgress stub: Returning download progress 100
006a:fixme:wmp:WMPNetwork_get_bufferingProgress stub: Returning buffering progress 100
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
01f6:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
00ea:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.
0051:fixme:ole:IiFTMUnknown_fnQueryInterface No interface for {00000144-0000-0000-c000-000000000046}.

I also played a match with the older image, on average lag was decreased from around 5 seconds to around 2.

Do you have a multimonitor setup? If so, try with only one screen setup.. or with an even older image panard/mtgo:2019-06-06.
In the worst case, you may try using wine directly, e.g.following https://it.toolbox.com/blogs/jeffhoogland/howto-install-mtgo-on-ubuntu-linux-010718 https://appdb.winehq.org/objectManager.php?sClass=version&iId=32007 or the instructions in the Dockerfile of this repository..

Thanks for the suggestions and help. The older image seems to be working well enough for now... Not currently using an external display. Just thought I would report that the issue has been pretty bad for me as well.

Edit: Tried panard/mtgo:2019-06-06 and there's no lag at all!

@JeffHoogland can you try ./run-mtgo panard/mtgo:2019-06-06 as well? If it works, I will probably revert the default image to it. Have you tried with wine directly? It could be a regression with the latest wine versions.

Had the same issue. It seems like panard/mtgo:2019-06-06 works better for me too.

Thanks for the feedback.
I've reverted wine to 4.9 accordingly; doing ./run-mtgo --update should fetch a working image (and then you can simply call ./run-mtgo). Please let me know if it is not the case..

I was running and having problems with:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
panard/mtgo         latest              0acb272bb1db        6 days ago          1.32GB

Which is the same as current latest.

Just re-verified, 0acb272bb1db causes lag for me.
Though I wouldn't say it's "mot actions" for me.

I re-ran 2019-06-06 now to re-verify and experienced lag, so maybe this is just intermittent and related to something else? A change in MTGO? Not a lot of samples to go off.

Sample log here:
https://pastebin.com/JBSuTTzt

@iwilliams can you try with ./run-mtgo --update as well?

The upcoming wine 5.0 includes many fixes, it could be another try as well if you still experiment lags:

./run-mtgo --update panard/mtgo:pr73

Finally, maybe some cleanup might help (docker system prune, and the --reset option to ./run-mtgo)... I'm not experiencing this bug, so its quite annoying..

Ran both docker system prune and with the --reset option:

$ ./run-mtgo --reset
WARNING: You are about to delete /home/anders/.local/share/mtgo and wipe docker volume mtgo-data-anders
Press Enter to continue, CTRL+C to abort

removed '/home/anders/.local/share/mtgo/Xauthority'
removed directory '/home/anders/.local/share/mtgo'
docker volume rm mtgo-data-anders
mtgo-data-anders
docker volume create mtgo-data-anders
mtgo-data-anders
docker run --rm -v mtgo-data-anders:/home/wine/.wine/host panard/mtgo:latest true
docker run --privileged --rm -e DISPLAY -v mtgo-data-anders:/home/wine/.wine/host/ -v mtgo-data-anders:/home/wine/.wine/drive_c/users/ -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /home/anders/.local/share/mtgo/Xauthority:/home/wine/.Xauthority:ro --net=host --ipc=host -e TZ=/usr/share/zoneinfo/Europe/Stockholm --name mtgo_running panard/mtgo:latest mtgo

Can confirm that I still experienced lag with the above.
(Note to others, --reset will unsurprisingly reset your settings)

@pauleve Sorry, haven't had a chance to test yet, been busy after coming back from holiday. Will try to test soon.

@pauleve I ran through a league after a ./run-mtgo --update and didn't have any problems.

Thanks! If you have time to try with ./run-mtgo --update panard/mtgo:pr73 at some point, I would be interested in your feedback as well to check if the upcoming stable version of wine still shows the issue..

panard/mtgo:pr73 still shows the issue for me .

I switch the default image to wine 5.5 (./run-mtgo --update).
If you still experiment a significant difference in performance, you can use

./run-mtgo panard/mtgo:2020-03-30

Let me know if it is still the case with the default image, and whenever the lag occurs during matches. From my experience, there are some lags at the start of MTGO, but then it gets quite smooth.

Hi @pauleve I just want to hit you up and let you know I'm experienced intermittent, but consistent, lag with the current default image. Especially when drafting. I've done 4 cube drafts yesterday, each one had sections of time when the game hung for a significant amount of time, between 30 seconds to 3 minutes. There are a couple of moments when there's a killer exception, and the container crashes instantly.

I will try a few rounds with your suggestions here, to use a different image, and see if I experience similar issues.

Let me know if there is anything about my system, or debugging I can help with.

Cheers

In case of exception, the debug trace can be useful. You can also append &>output.log to the command line to save the output to a file.

At the moment I don't have much useful info for debugging, other than to chime in and add that I'm on an Arch Linux host, I am experiencing this lag/lock up intermittently as well (just ran the ./run-mtgo --update recently).

Hmm, this is a problem in a VM as well - I think the client is downloading images as I try to play or something...

For what it's worth, using ./run-mtgo panard/mtgo:2020-03-30 has greatly improved my lag (macOS 10.13.6). I do agree with ahungry: the only time I do notice substantial lag is when my opponent plays a card I haven't seen before, which doesn't have art and will lock the client up for 15-30 seconds.

Do you have an nvidia graphics card? If so, #132 may be worth a try:

  1. install nvidia-container-toolkit, aka nvidia-docker2
  2. update the run-mtgo script
wget -O run-mtgo https://raw.githubusercontent.com/pauleve/docker-mtgo/master/run-mtgo
chmod +x run-mtgo
  1. use ./run-mtgo -- --gpus all panard/mtgo

Let me know if helps or not...

I do not, I have Intel onboard graphics (Macbook Air). Thanks though!

This issue is open since a long time, with it being resolved partly for some users, and not for others, probably due to different reasons.
I close this issue, affected used please re-open a fresh one with a complete description of your environment (follow the new issue template), so we might make some progress.