Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Computer "Mad" crashes when I'm attacking #13342

Open
heloirf opened this issue Feb 13, 2025 · 7 comments
Open

Computer "Mad" crashes when I'm attacking #13342

heloirf opened this issue Feb 13, 2025 · 7 comments
Assignees
Labels
AI bug Bugs and errors

Comments

@heloirf
Copy link

heloirf commented Feb 13, 2025

It's happening very frequently in the most recent updates, when I'm playing against the computer (Mad mode) the game crashes when I'm attacking. One of the AIs does not pass priority.

"Declare Attackers - Waiting for Computer 4"

I'm using Skill 1 to make AI decisions faster, but it still crashes. Game Type Commander Free for All

@JayDi85
Copy link
Member

JayDi85 commented Feb 13, 2025

Are you talking about server crash (errors like "card xxx not found") or simple game freeze?

On server crash you can try to increase server memory usage from launcher - settings - java options - server - find and change -Xmx1000m to -Xmx2000m or like that (it's increase memory from 1000 MB to 2000 MB.

On game freeze report cards list or battlefield screenshot here. Also some error or game logs can be useful.

@JayDi85 JayDi85 added the AI label Feb 13, 2025
@Treacheres
Copy link

Have a similar issue, not a crash or freeze but the AI will hang and refuse to assign a blocker, requiring a restart. Glissa Sunslayer reliably causes it.

Image

@JayDi85
Copy link
Member

JayDi85 commented Feb 14, 2025

[[Glissa Sunslayer]]

Copy link

Glissa Sunslayer - (Gatherer) (Scryfall) (EDHREC)

{1}{B}{G}
Legendary Creature — Phyrexian Zombie Elf
3/3
First strike, deathtouch
Whenever Glissa Sunslayer deals combat damage to a player, choose one —
• You draw a card and you lose 1 life.
• Destroy target enchantment.
• Remove up to three counters from target permanent.

@ventzbtc
Copy link

ventzbtc commented Feb 14, 2025

+1 here...

Game has been freezing/crashing a lot more frequently with new update.

Freezing happens during combat phase, one of the bots never passes priority and the game can't be continued. Have seen it happening a least a dozen of times since the upgrade.

Image

ERROR 2025-02-14 09:41:02,344 Catch unhandled error in CALL thread: null =>[CALL - 2] ThreadExecutorImpl$CachedThreadPoolWithException.afterExecute
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at mage.util.CardUtil.deepCopyList(CardUtil.java:1999)
at mage.util.CardUtil.deepCopyObject(CardUtil.java:1951)
at mage.abilities.TriggeredAbilities.(TriggeredAbilities.java:65)
at mage.abilities.TriggeredAbilities.copy(TriggeredAbilities.java:319)
at mage.game.GameState.(GameState.java:169)
at mage.game.GameState.copy(GameState.java:289)
at mage.game.GameImpl.(GameImpl.java:209)
at mage.game.GameCommanderImpl.(GameCommanderImpl.java:41)
at mage.game.FreeformCommanderFreeForAll.(FreeformCommanderFreeForAll.java:25)
at mage.game.FreeformCommanderFreeForAll.copy(FreeformCommanderFreeForAll.java:51)
at mage.game.FreeformCommanderFreeForAll.copy(FreeformCommanderFreeForAll.java:15)
at mage.server.game.GameSessionPlayer.prepareGameView(GameSessionPlayer.java:214)
at mage.server.game.GameSessionPlayer.getGameView(GameSessionPlayer.java:200)
at mage.server.game.GameSessionWatcher.lambda$update$0(GameSessionWatcher.java:56)
at java.util.Optional.ifPresent(Optional.java:159)
at mage.server.game.GameSessionWatcher.update(GameSessionWatcher.java:56)
at mage.server.game.GameController.updateGame(GameController.java:823)
at mage.server.game.GameController.lambda$init$3aa0d15c$1(GameController.java:123)
at mage.game.events.EventDispatcher.fireEvent(EventDispatcher.java:28)
at mage.game.events.TableEventSource.fireTableEvent(TableEventSource.java:44)
at mage.game.GameImpl.fireUpdatePlayersEvent(GameImpl.java:3198)
at mage.game.GameImpl.rollbackTurns(GameImpl.java:4020)
at mage.server.game.GameController.sendPlayerAction(GameController.java:539)
at mage.server.game.GameManagerImpl.sendPlayerAction(GameManagerImpl.java:127)
at mage.server.MageServerImpl.lambda$null$39(MageServerImpl.java:828)
at java.util.Optional.ifPresent(Optional.java:159)
at mage.server.MageServerImpl.lambda$sendPlayerAction$40(MageServerImpl.java:826)
at mage.server.MageServerImpl.lambda$execute$69(MageServerImpl.java:1169)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Exception in thread "CALL - 2" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at mage.util.CardUtil.deepCopyList(CardUtil.java:1999)
at mage.util.CardUtil.deepCopyObject(CardUtil.java:1951)
at mage.abilities.TriggeredAbilities.(TriggeredAbilities.java:65)
at mage.abilities.TriggeredAbilities.copy(TriggeredAbilities.java:319)
at mage.game.GameState.(GameState.java:169)
at mage.game.GameState.copy(GameState.java:289)
at mage.game.GameImpl.(GameImpl.java:209)
at mage.game.GameCommanderImpl.(GameCommanderImpl.java:41)
at mage.game.FreeformCommanderFreeForAll.(FreeformCommanderFreeForAll.java:25)
at mage.game.FreeformCommanderFreeForAll.copy(FreeformCommanderFreeForAll.java:51)
at mage.game.FreeformCommanderFreeForAll.copy(FreeformCommanderFreeForAll.java:15)
at mage.server.game.GameSessionPlayer.prepareGameView(GameSessionPlayer.java:214)
at mage.server.game.GameSessionPlayer.getGameView(GameSessionPlayer.java:200)
at mage.server.game.GameSessionWatcher.lambda$update$0(GameSessionWatcher.java:56)
at java.util.Optional.ifPresent(Optional.java:159)
at mage.server.game.GameSessionWatcher.update(GameSessionWatcher.java:56)
at mage.server.game.GameController.updateGame(GameController.java:823)
at mage.server.game.GameController.lambda$init$3aa0d15c$1(GameController.java:123)
at mage.game.events.EventDispatcher.fireEvent(EventDispatcher.java:28)
at mage.game.events.TableEventSource.fireTableEvent(TableEventSource.java:44)
at mage.game.GameImpl.fireUpdatePlayersEvent(GameImpl.java:3198)
at mage.game.GameImpl.rollbackTurns(GameImpl.java:4020)
at mage.server.game.GameController.sendPlayerAction(GameController.java:539)
at mage.server.game.GameManagerImpl.sendPlayerAction(GameManagerImpl.java:127)
at mage.server.MageServerImpl.lambda$null$39(MageServerImpl.java:828)
at java.util.Optional.ifPresent(Optional.java:159)
at mage.server.MageServerImpl.lambda$sendPlayerAction$40(MageServerImpl.java:826)
at mage.server.MageServerImpl.lambda$execute$69(MageServerImpl.java:1169)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

@JayDi85 JayDi85 self-assigned this Feb 14, 2025
@JayDi85 JayDi85 added the bug Bugs and errors label Feb 14, 2025
@MrTablez
Copy link

+1 Happens for me as well. Happens relatively reliably when I attack with [[Wolverine, Best There Is]]. I don't see anything unusual in my client or sever console when it occurs.

Image

The computer has no untapped lands, and having built that deck it's using, it shouldn't have any mana-free actions to attempt. Interesting to note that attacking won't always cause this, but I honestly haven't been able to determine when it will vs. won't. Sometimes it refuses to take actions when it's lethal damage, sometimes it goes through just fine. It could be an issue with double blockers? That seems to be a common trend across these screenshots atleast. Hope this helps, and thanks for your hard work, I really enjoy xmage.

Copy link

Wolverine, Best There Is - (Gatherer) (Scryfall) (EDHREC)

{1}{R}{G}
Legendary Creature — Mutant Berserker Hero
2/2
Unrivaled Lethality — Double all damage Wolverine would deal.
At the beginning of each end step, if Wolverine dealt damage to another creature this turn, put a +1/+1 counter on him.
{1}{G}: Regenerate Wolverine. (The next time he would be destroyed this turn, instead tap him, remove him from combat, and heal all damage on him.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AI bug Bugs and errors
Projects
None yet
Development

No branches or pull requests

5 participants