#377

New

Crash: Multiplayer removing cards from table.

Reported by Pandapaw on OCTGN · 03/05/2011 05:43:44

Assigned to:
jods
Priority:
Normal
Status:
New
Category:
None
Version:
0.9.*
Issue type:
Bug

def destroy(card, x = 0, y = 0): 
	mute()
	if card.deck == "Door": 
		card.moveTo(card.owner.piles['Door Discard pile'])
		notify("{} destroys {}.".format(me, card))
	if card.deck == "Treasure": 
		card.moveTo(card.owner.piles['Treasure Discard pile'])
		notify("{} destroys {}.".format(me, card))

The game will randomly crash the host’s client when another player tries to use this function to remove a card from the table.

I’ve been able to duplicate another bug which I think is the same. If a player deals a stack of cards on the table and holds the shortcut key to for the function, after about removing 5-10 cards quickly the player’s client will crash. The host has been immune to this crash.

I have not been able to duplicate either case in single player or under lan running multiple instances.

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.NullReferenceException: Object reference not set to an instance of an object.
at Octgn.Play.Gui.CardControl.TableKeyDown(Object source, TableKeyEventArgs te) in C:\OCTGN FX\Octgn\Play\Gui\CardControl.xaml.cs:line 780
-
- End of inner exception stack trace -
at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at Octgn.Play.PlayWindow.OnKeyDown(KeyEventArgs e) in C:\OCTGN FX\Octgn\Play\PlayWindow.xaml.cs:line 219
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawKeyboardActions actions, Int32 scanCode, Boolean isExtendedKey, Boolean isSystemKey, Int32 virtualKey)
at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
at System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(MSG& msg, Boolean& handled)
at System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at Octgn.OctgnApp.Main() in C:\OCTGN FX\Octgn\obj\Debug\App.g.cs:line 0

The case where the client crashes shows a slightly different error report. I’ll try to get that later.

Attachments

No attachment has been uploaded, yet.


Loading comments...