It is currently 14 Sep 2025, 09:34
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Bug Reports (snapshot builds)

Postby friarsol » 27 May 2013, 14:34

Description: [describe what you were doing when the crash occurred]

RuntimeException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_21 Oracle Corporation

java.lang.RuntimeException: Inputs adding/removal into stack is imbalanced! Check your code again!
   at forge.control.input.InputQueue.removeInput(InputQueue.java:92)
   at forge.control.input.InputSyncronizedBase$1.run(InputSyncronizedBase.java:36)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:722)
Ok, I seem to get this fairly regularly. It doesn't popup immediately, but my Eclipse starts flashing. Whenever it happens, if I Ignore eclipse flashing I can continue playing until I get like 3-4 more of them. However, If I go into Eclipse when it starts flashing and let the error actually bubble up I see this. As far as I can tell it happens most often when I finish paying for a SA.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 27 May 2013, 14:41

@swordshine, works now.
@Agetian,can't reproduce =( Just got it!
Code: Select all
Game-4 > java.lang.RuntimeException: Cannot remove input InputPayManaOfCostPayment because it's not on top of stack. Stack = []
   at forge.control.input.InputQueue.removeInput(InputQueue.java:92)
   at forge.control.input.InputSyncronizedBase$1.run(InputSyncronizedBase.java:36)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Game-3 > java.lang.RuntimeException: Trying to unlock input which is not locked (threading issue)! Input stack = []
   at forge.control.input.InputQueue.unlock(InputQueue.java:183)
   at forge.control.input.InputQueue$1.run(InputQueue.java:203)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 27 May 2013, 17:03

It seems like mana payment isn't updating properly. Several times I was trying to pay for a 5 mana spell, and after tapping 5 lands, it still claimed I had 1 mana left to spend. Then when I tapped a 6th land, the SA went on the stack and then I had extra mana in my mana pool. Next time I see this I'll try to catch which land is being missed.

Ok, I just cast a Skullclamp and it was a Mountain that I tapped for land, but it seems like it may just be the last mana that I activate.

Additionally, sometimes the input box is losing focus after casting a spell, usually related to these scenarios where the mana isn't activated properly.

Additionally #2, when I activated that Skullclamp on a 0/1 token, the draw cards part of it didn't trigger.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 27 May 2013, 18:25

sol, I've tried it all now (r21757) - Fixed remaining mana display problems, input lock/unlock problems, focus not properly set.


Reproduced Skullclamp, but it's not related to inputs and thread.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Bug Reports (snapshot builds)

Postby friarsol » 27 May 2013, 22:55

r21759

Description: AI playing Honden Quest deck and casts Fabricate.

Console has these two lines before the crash:

Don't need a land or none available; trying for a creature.
5 Life or less, trying to find something castable.

NullPointerException | Open
Code: Select all
Forge Version:    SVN
Operating System: Windows 7 6.1 x86
Java Version:     1.7.0_21 Oracle Corporation

java.lang.NullPointerException
   at forge.card.mana.ManaCostBeingPaid.applySpellCostChange(ManaCostBeingPaid.java:497)
   at forge.game.ai.ComputerUtilMana.calculateManaCost(ComputerUtilMana.java:463)
   at forge.game.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:83)
   at forge.game.ai.ComputerUtilMana.hasEnoughManaSourcesToCast(ComputerUtilMana.java:57)
   at forge.card.ability.ai.ChangeZoneAi.hiddenOriginResolveAI(ChangeZoneAi.java:1228)
   at forge.card.ability.effects.ChangeZoneEffect.changeHiddenOriginResolve(ChangeZoneEffect.java:597)
   at forge.card.ability.effects.ChangeZoneEffect.resolve(ChangeZoneEffect.java:352)
   at forge.card.ability.SpellApiBased.resolve(SpellApiBased.java:54)
   at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1057)
   at forge.card.ability.AbilityUtils.resolve(AbilityUtils.java:1034)
   at forge.game.zone.MagicStack.resolveStack(MagicStack.java:614)
   at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:746)
   at forge.game.player.PlayerController.passPriority(PlayerController.java:80)
   at forge.control.input.InputPassPriorityBase$1.run(InputPassPriorityBase.java:16)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:722)
Edit: Same revision

AI isn't passing priority properly for Cast Spell triggers.

Repro:
1. Cast Opal Gargoyle (Veiled Sentry might be faster)
2. Wait till your opponent casts a Creature Spell
3. My Input says the AI has priority, my trigger is top of the stack with his creature underneath.


I can't move on since it's not my priority, so the game is essentially frozen.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 28 May 2013, 02:47

r21763: Got this threading-related crash when tapping a card (in particular, a land for mana) - had to concede a game to be able to continue:

RuntimeException | Open
Code: Select all
Forge Version:    1.3.17-SNAPSHOT-r21763
Operating System: Linux 3.7.0-7-generic amd64
Java Version:     1.7.0_21 Oracle Corporation

java.lang.RuntimeException: Cannot remove input InputPayManaOfCostPayment because it's not on top of stack. Stack = []
   at forge.control.input.InputQueue.removeInput(InputQueue.java:92)
   at forge.control.input.InputSyncronizedBase$1.run(InputSyncronizedBase.java:37)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:722)
Last edited by Agetian on 28 May 2013, 10:51, edited 1 time in total.
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby moomarc » 28 May 2013, 07:23

The AttackerBlocked trigger of Dwarven Berserker triggers whether-or-not it was blocked.

Edit: Same for Alley Grifters and I assume any other AttackerBlocked without a ValidBlocker param
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Bug Reports (snapshot builds)

Postby Sloth » 28 May 2013, 07:35

moomarc wrote:The AttackerBlocked trigger of Dwarven Berserker triggers whether-or-not it was blocked.

Edit: Same for Alley Grifters and I assume any other AttackerBlocked without a ValidBlocker param
Fixed! thanks marc.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Bug Reports (snapshot builds)

Postby moomarc » 28 May 2013, 08:20

Sloth wrote:
moomarc wrote:The AttackerBlocked trigger of Dwarven Berserker triggers whether-or-not it was blocked.

Edit: Same for Alley Grifters and I assume any other AttackerBlocked without a ValidBlocker param
Fixed! thanks marc.
Thanks for the quick fix Sloth. Just came across another issue while testing further that I can't explain. I attacked the AI with a Dwarven Berserker and Alley Grifters. I then cast a Curtain of Light for the AI on each creature. The Berserker still dealt the combat damage while the Grifters were correctly didn't. I tested further on successive turns attacking with each individually then being blocked by the curtain, and each time the Berserker still dealt damage.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 28 May 2013, 08:57

It is still bugged >X_X<

because of 21768 this time.
Try to play Auntie's Howel for instance. Or Ancient Amphitheater.

With 21768 reverted it generally works, but has threading issues on several systems (Agetian reported one last night)


I'll have to reshape the whole input and priorities interaction.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Bug Reports (snapshot builds)

Postby mark » 28 May 2013, 09:45

There is a bug with Elesh Norn, Grand Cenobite + Arrest + Kormus Bell (see screenshot): Enemy Lands are still only lands and not creatures, though own lands are not. Without Arrest it works as it should.

Another thing: The AI plays 1/1 creatures while Elesh Norn is on the field, so they are removed instantly.
Attachments
screenshot.png
mark
 
Posts: 138
Joined: 28 Dec 2011, 11:32
Has thanked: 6 times
Been thanked: 11 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 28 May 2013, 10:50

Just noticed that many precon decks fail to show up in the quest shop on Linux because the files with precon pictures on the server use mixed case (at least many of them), e.g. Boggart_Feast.jpg, while the game tries to load them in lowercase (boggart_feast.jpg), and Linux uses case-sensitive file systems, so it can't find the file boggart_feast.jpg if it's named Boggart_Feast.jpg on the hard drive. Manually renaming the files to lowercase works, but then the next time you request the quest image content download it'll redownload the files with mixed case (so it'll think that the files do not exist).

Also, the threading bug I reported above is still present as of r21776, not sure if Max tried to fix that already or not (if not yet, just disregard this).

- Agetian
Agetian
Programmer
 
Posts: 3489
Joined: 14 Mar 2011, 05:58
Has thanked: 684 times
Been thanked: 572 times

Re: Bug Reports (snapshot builds)

Postby lsdmaster » 28 May 2013, 11:04

Description: This happens very often when I try to play a card (this time was Abbey Matron)

RuntimeException | Open
Code: Select all
Forge Version:    1.3.17-SNAPSHOT-r21776
Operating System: Windows XP 5.1 x86
Java Version:     1.7.0_21 Oracle Corporation

java.lang.RuntimeException: Cannot remove input InputPayManaOfCostPayment because it's not on top of stack. Stack = []
   at forge.control.input.InputQueue.removeInput(InputQueue.java:91)
   at forge.control.input.InputSyncronizedBase.stop(InputSyncronizedBase.java:35)
   at forge.control.input.InputPayManaBase.onStateChanged(InputPayManaBase.java:261)
   at forge.control.input.InputPayManaBase.showMessage(InputPayManaBase.java:255)
   at forge.control.input.InputBase.showMessage(InputBase.java:47)
   at forge.gui.InputProxy$1.run(InputProxy.java:69)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$200(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Description: this comes when I close the first report, then I can't play anymore

RuntimeException | Open
Code: Select all
Forge Version:    1.3.17-SNAPSHOT-r21776
Operating System: Windows XP 5.1 x86
Java Version:     1.7.0_21 Oracle Corporation

java.lang.RuntimeException: Trying to unlock input which is not locked (threading issue)! Input stack = []
   at forge.control.input.InputQueue.unlock(InputQueue.java:183)
   at forge.card.spellability.HumanPlaySpellAbility.fillRequirements(HumanPlaySpellAbility.java:107)
   at forge.game.player.HumanPlay.playSpellAbility(HumanPlay.java:126)
   at forge.game.player.HumanPlay.playSpellAbility(HumanPlay.java:75)
   at forge.control.input.InputPassPriority$1.run(InputPassPriority.java:72)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Last edited by lsdmaster on 28 May 2013, 11:05, edited 1 time in total.
lsdmaster
 
Posts: 15
Joined: 23 Apr 2013, 12:23
Has thanked: 1 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Sloth » 28 May 2013, 11:04

mark wrote:There is a bug with Elesh Norn, Grand Cenobite + Arrest + Kormus Bell (see screenshot): Enemy Lands are still only lands and not creatures, though own lands are not. Without Arrest it works as it should.
Kormus Bell only works on Swamps.

moomarc wrote:Thanks for the quick fix Sloth. Just came across another issue while testing further that I can't explain. I attacked the AI with a Dwarven Berserker and Alley Grifters. I then cast a Curtain of Light for the AI on each creature. The Berserker still dealt the combat damage while the Grifters were correctly didn't. I tested further on successive turns attacking with each individually then being blocked by the curtain, and each time the Berserker still dealt damage.
This is correct, Dwarven Berserker has trample.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Bug Reports (snapshot builds)

Postby Max mtg » 28 May 2013, 11:32

I see - there will be a different input system in several hours, or maybe tomorrow.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 38 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 38 users online :: 0 registered, 0 hidden and 38 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: No registered users and 38 guests

Login Form