bugdone / headshotbox

https://headshotbox.github.io
MIT License
163 stars 25 forks source link

Failing to process demo #210

Closed ajohnsen closed 6 years ago

ajohnsen commented 6 years ago

Getting this stacktrace when trying to parse this demo: steam://rungame/730/76561202255233023/+csgo_download_match%20CSGO-NMH6k-tGcOU-tHf4J-mxys5-dLaxJ

18-07-25 20:42:13 Tower DEBUG [hsbox.indexer:76] - Adding path /demoes/replays/match730_003290698404111319097_1247390871_188.dem 18-07-25 20:42:13 Tower INFO [hsbox.demo:317] - Processing /demoes/replays/match730_003290698404111319097_1247390871_188.dem 18-07-25 20:42:14 Tower ERROR [hsbox.indexer:87] - Cannot parse demo /demoes/replays/match730_003290698404111319097_1247390871_188.dem 18-07-25 20:42:14 Tower ERROR [hsbox.indexer:88] - hsbox.core.main ... hsbox.core/-main core.clj: 46 hsbox.core/-main core.clj: 84 hsbox.indexer/run indexer.clj: 148 hsbox.indexer/add-demo indexer.clj: 78 hsbox.demo/get-demo-info demo.clj: 319 hsbox.demo/parse-demo demo.clj: 60 hsbox.demo/parse-demo/do-parse demo.clj: 57 java.lang.AssertionError: Assert failed: (zero? (:exit proc))

ajohnsen commented 6 years ago

I think that this also breaks the updating of banned status from steam Because when i press the "Refresh players steam data" button, i just get the stacktrace again in the log file. and it wont update the status.

bugdone commented 6 years ago

The link expired. Do you still have the demo?

ajohnsen commented 6 years ago

Yeah, i uploaded the demo here: https://s3.eu-central-1.amazonaws.com/headshotbox-failing-demo/replays.zip

bugdone commented 6 years ago

Is that the only replay it cannot parse? I cannot reproduce it.

ajohnsen commented 6 years ago

Yeah, thats the only demo im having problems with :/ I tried to redownload it as well, but no change.

edit: I just fired up a new instance with only that one demo, and it parsed it just fine. Could it be that it has some corrupt data in the database for that demo, that making the parsing fail?

bugdone commented 6 years ago

No. The code failed because the binary demoinfogo didn't exit with status code 0. So every time you fire up Headshotbox it tries to parse it and fails?

ajohnsen commented 6 years ago

yeah, i get the error every time it tries to parse it.

bugdone commented 6 years ago

After this parsing fails, do other demos get parsed successfully?

ajohnsen commented 6 years ago

Yeah, all other demos get parsed just fine. Do you have any idea how i can debug it further ?

Is it possible to see any logs from the demoinfogo executable?

bugdone commented 6 years ago

I assume you run it on linux. Run demoinfogo manually on that demo. ./demoinfogo -hsbox demo.dem And see if there's any output to stder/stdout. Also grab the exit status code (run echo $? after running demoinfogo). Get a core dump if you can (ulimit -c unlimited before running demoinfogo).

ajohnsen commented 6 years ago

I tried to run it manually now, and i ended up with an segmentation fault. Here is the core dump: https://s3.eu-central-1.amazonaws.com/headshotbox-failing-demo/core

bugdone commented 6 years ago

I cannot get anything useful out of the core you provided:

BFD: Warning: /demoinfogo/core is truncated: expected core file size >= 131178496, found: 819200. Cannot access memory at address 0x2aa4b908 Cannot access memory at address 0x2aa4b904

Did you run it with -hsbox? I did manage to get a crash running it without -hsbox but it doesn't crash with -hsbox.

I fixed the crash I found, but Headshotbox runs demoinfogo always with -hsbox so I don't think it fixes your issue.

ajohnsen commented 6 years ago

Yeah, i ran it with this command: ./demoinfogo -hsbox /demoes/replays/match730_003290698404111319097_1247390871_188.dem

I've been running it in a docker container, but one works and my main one didn't. So i tried to fire up a temp one to run the demoinfogo, and i got a seg fault. Its probably an issue on my side / docker.

Are you able to recreate it by starting the docker and running it? This is how i did it: docker run -it --rm -v /mnt/user/data/csgo-demoes/:/demoes ajohnsen/headshotbox bash Then running: ./demoinfogo -hsbox /demoes/match730_003290698404111319097_1247390871_188.dem

bugdone commented 6 years ago

I can only crash it if I create a i386/ubuntu:12.04 docker image, copy the binary there and run ./demoinfogo match730_003290698404111319097_1247390871_188.dem. If I add -hsbox the demo parses fine.

ajohnsen commented 6 years ago

This is really weird: I tried it with i386/ubuntu and i386/openjdk which ajohnsen/headshotbox is built on, and it works on both of them, but not on ajohnsen/headshotbox :s

I just force updated to the newest i386/openjdk and recreated the docker image, and it seems like its working now. Thanks for helping me out with the problem, wonder why it suddenly couldn't process one of the demos.