StephenGss / PAL

Polycraft World AI Lab
3 stars 6 forks source link

place_tree_tap failure #43

Open mpatsift opened 3 years ago

mpatsift commented 3 years ago

This looks like https://github.com/StephenGss/PAL/issues/38 but I don't see a way to re-open that ticket.

This failure occurred while running pogo_100_PN/POGO_L00_T01_S01_X0100_U9999_V0_G00001_I0403_N0.json.

`2021-11-22_16:51:35: PAL: [2021-11-22 10:51:35] [16:51:35] [BOT API THREAD/INFO]: [edu.utd.minecraft.mod.polycraft.aitools.BotAPI$1:run:728]: PLACE_TREE_TAP

2021-11-22_16:51:35: PAL: [2021-11-22 10:51:35] [16:51:35] [BOT API THREAD/INFO]: [AGENT]PLACE_TREE_TAP

2021-11-22_16:51:35: PAL: [2021-11-22 10:51:35] [16:51:35] [Client thread/INFO]: [edu.utd.minecraft.mod.polycraft.aitools.BotAPI:onClientTick:643]: PLACE_TREE_TAP

2021-11-22_16:51:35: PAL: [2021-11-22 10:51:35] [16 pal-tournament-2021-11-22-104717-openmind0.log.gz :51:35] [Client thread/INFO]: Running Command on Client side: edu.utd.minecraft.mod.polycraft.aitools.commands.APICommandPlaceBlock

2021-11-22_16:51:35: PAL: [2021-11-22 10:51:35] [16:51:35] [BOT API THREAD/INFO]: [CLIENT]{"goal":{"goalType":"ITEM","goalAchieved":false,"Distribution":"Uninformed"},"command_result":{"command":"PLACE_TREE_TAP","argument":"","result":"FAIL","message":"Block not placed","stepCost":300.0},"step":70,"gameOver":false} `

mpatsift commented 3 years ago

Fyi, next run w no changes to agent or config did not show failure.

StephenGss commented 3 years ago

Hi Mike,

It looks like the post-world state is incorrect in this example. So that's a bug. What appears to be happening is that first you are teleporting to a tree using TP_TO 69,17,56 2 Then right after that happens, the pogoist teleports to the same tree {"action":"TP_TO","args":"69,17,57","result":"SUCCESS","stepNumber":68},"entityID":133}

At this point the pogoist is between your agent and the tree. The result should be "actor exists where trying to place a block" instead of "block not placed". So I will fix that command response. I'm not sure we want to change the pogoist's behavior for this. We may need to discuss.

EricKildebeck commented 3 years ago

Hi Mike,

Regarding the reproducibility of this issue, does the OM agent perform different actions when this occurs or doesn't occur? If the OM agent is performing the same sequence of actions, we would expect the Pogoist to always perform the same action sequence. So that is curious.

If what we think is happening is indeed the case (Pogoist teleporting to occupy the location between you and the tree), then this would be a case that potentially requires spatial reasoning. Obviously we have endeavored to remove spatial reasoning elements for your team. We are open to ideas to do so here as well. Alternatively, if the FAIL response is corrected to say that an Actor is in the way, this is a good example of external actors impacting the task, and the solution would be to find another tree or find a sapling and plant a new tree (because if the Pogoist is there he is almost certainly going to shop the tree down on his next action). Happy to discuss.

mpatsift commented 2 years ago

Hi Eric and Stephen -

I ran this particular config ten times in a row. In the first six games, OM makes the same initial plan. In the first five games, the plan succeeds w/o incident. In the sixth game, the PLACE_TREE_TAP fails.

The attached files show the pogoist actions reported to OM. Though the pogoist seems to choose the same first TP_TO target every time, its later moves can be different. Eg, in the fourth game, its second target is '65,17,43', which had been its third target in the earlier games.

AND, btw, in the 10th game there are no traders, although all ten games use the same config!

pogoist-actions-deduped.txt pogoist-actions-raw.txt

EricKildebeck commented 2 years ago

Hi Mike,

Can you tell me which config/json you used for this test. We want to duplicate the test on our end.

Thank you for those logs, we are looking into the issues.

mpatsift commented 2 years ago

It's POGO_L00_T01_S01_X0100_U9999_V0_G00001_I0403_N0.json, the second config in the pogo_100_PN directory.

Here's the pal-tournament log, in case its useful: pal-tournament-2021-12-08-165221-openmind1.log.gz

mpatsift commented 2 years ago

Still seeing this w Phase3 Polycraft (polycraft-1.5.4-20220929-17.05.45.jar).

In this log there are a couple java.lang.NullPointerException events. The first time (line 8955) PAL recovers and the second time (line 12034) it crashes.

pal-tournament.log.gz

(For future reference, this is our /var/lib/jenkins/workspace/openmind/build-images/code/test/results/pal-tournament-v2-shared-5-5-1-E-2022-10-08-234538-openmind0/pal-tournament.log.gz )

StephenGss commented 2 years ago

I think this is fixed in the last push today. There was an asynchronous race case that could cause a nullpointer when placing blocks. fix commit: 93eb1140422bc09f69f591fc79b29f67fa0234a4

Please let me know if you see this again.