pauleve/docker-mtgo

Magic Online is offline/down for maintenance (but is up for everyone else)

amesteDev opened this issue · 9 comments

When trying to start after the switch to Daybreak, i can't log in anymore. Worked fine yesterday.

I get a license agreement that is dated 7 october 2022, and the information from wotc/daybreak is that it should be dated 18 october 2022.

Also looks like the "magic onlin is currently offline" appears on the login screen at the same time as the error about unexpected time zone appears in the log.

Steps i have tried:

./run-mtgo --reset --update
removing docker container/image and fetching/installing the image/container again.

OS: Manjaro
Desktop environment (for Linux): KDE/Plasma
Graphics card: Nividia (Gigabyte RTX 3060)
Output of docker info:
Client:
Context: default
Debug Mode: false

Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
Server Version: 20.10.18
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: false
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
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: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6.m
runc version:
init version: de40ad0
Security Options:
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.74-3-MANJARO
Operating System: Manjaro Linux
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 15.55GiB
Name: kwejk
ID: QWDT:4ZUX:R6OU:WUEK:SHAZ:657J:BGGZ:B6SL:5FNL:QRO7:NCY3:YLTP
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

Output from ./run-mtgo:
output.log

I confirm the bug, I'm investing it right now...

EDIT: occurs in wine outside Docker (thus an upstream bug)

For the record, this seems to be related to an SSL certificate validation issue. Here is an excerpt of Loupe logging:

Information	10/19/2022 10:26:09 PM		Connection Changed
NacsConnectionChanged Connected: False, Message: SslAuthenticationFailed
	MainUI	Shiny.Login.LoginViewModel.NacsConnectionChangedNotificationHandler	C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\View\LoginScene\LoginViewModel.cs (267)
...
Verbose	10/19/2022 10:26:48 PM		Socket - ConnectionFailed
	MessagePumpThread 0	FlsClient.FlsClientSession.HandlePendingSslConnectionSocketEvent	C:\jenkins\workspace\Build\Windows\source\windows\clients\FlsClient\FlsClientSession.cs (222)
...
Information	10/19/2022 10:26:48 PM		Show Error Dialog
MagicExceptionType: ConnectionStateException
Severity: Warning
Message: Magic Online is currently offline for scheduled maintenance.
ActionToTake: Please re-enter your Screen Name and password.
ExtraDetails: The connection was closed by the server.
InternalDetails: SSL authentication failed
   at WotC.MtGO.Client.Model.Session.SessionManager.HandleConnectionFailedEvent(ConnectionStatusNotification msg) in C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\Model\WotC.MtGO.Client.Model.Session\SessionManager.cs:line 468
   at WotC.MtGO.Client.Model.Session.SessionManager.FlsClientSession_ConnectionStatus(ConnectionStatusNotification msg) in C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\Model\WotC.MtGO.Client.Model.Session\SessionManager.cs:line 392
   at FlsClient.Dispatcher.<>c__DisplayClass8_0`1.<RegisterHandler>b__0(Object csmessage) in C:\jenkins\workspace\Build\Windows\source\windows\clients\FlsClient\Dispatcher.cs:line 51
   at Shiny.Core.FlsClientUIDispatcher.EnqueueAndProcess(Action`1 handler, Object msg) in C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\View\Core\FlsClientUIDispatcher.cs:line 61
   at Shiny.Core.FlsClientUIDispatcher.<>c__DisplayClass5_0.<ExecuteHandler>b__0() in C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\View\Core\FlsClientUIDispatcher.cs:line 39
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at Shiny.App.Main() in C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\View\MainNavigation\obj\Release\App.g.cs:line 52

	MainUI	Shiny.App.ShowErrorDialog	C:\jenkins\workspace\Build\Windows\source\windows\clients\Shiny\View\MainNavigation\App.xaml.cs (597)

I patched wine to bypass SSL certificate verification, which makes login work again. This is an awfull hack and I hope to revert as soon as possible. See #165

./run-mtgo --update

Oddly enough, there are reports on Windows users having the same issue: https://www.reddit.com/r/MTGO/comments/y8bs5a/mtgo_is_not_working_for_me/

Can confirm the workaround is working for me as well.

I patched wine to bypass SSL certificate verification

Is there not some way to just add a manual exception specifically for this certificate on login page rather than disabling all verification? Could it be added to the trusted certificates manually?

Yeah, it would be nice to identify the buggy (or bug-triggering) certificate and either open a wine bug report or report to daybreak. I'll try finding a way to do that..

I expect this is Daybreaks end. Thank you for getting this fixed even if it's a dirty hack.

The issue seems in wine, as the certificate is validated by all the tools I tried (it is issued by Let's encrypt).

WineHQ bug report: https://bugs.winehq.org/show_bug.cgi?id=53813

Thanks to the amazing efficiency of WineHQ community, a proper fix has already been cooked.
It will probably be included in wine-7.21 ; but it is anyway already in the Docker image, where SSL validation has been restored.