Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

Server(bwapi) crashes immediately after launching torchcraft-py #2

Open
yiyang92 opened this issue Apr 10, 2017 · 3 comments
Open

Server(bwapi) crashes immediately after launching torchcraft-py #2

yiyang92 opened this issue Apr 10, 2017 · 3 comments

Comments

@yiyang92
Copy link

On client side I have a following message:
ZMQ:server::connect(): invalid message

Also protocol version must be changed as TorchCraft now using v17 instead of v16
bwapi errors file:

//////////////////////////////////////////////////
TIME: Mon Apr 10 13:53:27 2017

VERSION: 1.16.1.1
BWAPI:
REVISION: 4708
BUILD: RELEASE
ERROR: None
LOCATION: Single Player
MAP: marines_1v1
m5v5_c_far.scm

EXCEPTION: 0xC0000005 EXCEPTION_ACCESS_VIOLATION
FAULT: 0x0F424F78 czmq.dll
REGISTERS:
EDI: 04986C80
ESI: 00000000
EBX: 00000000
EDX: 00000000
ECX: 00000000
EAX: 00000000
EBP: 0019F928
EIP: 0F424F78
ESP: 0019F928
STACK:
czmq.dll 0x0F424F78 zsock_is
czmq.dll 0x0F4255D0 zsock_resolve
czmq.dll 0x0F4219E6 zmsg_send
czmq.dll 0x0F42643E zsock_vsend
czmq.dll 0x0F425642 zsock_send
BWEnv.dll 0x0FED6713 newAIModule
BWEnv.dll 0x0FEC32F0 ----
BWEnv.dll 0x0FEC8A48 newAIModule
BWAPI.dll 0x1003471E ----
BWAPI.dll 0x1003496A ----
BWAPI.dll 0x10041BC9 ----
BWAPI.dll 0x100345E7 ----

@prophyfang
Copy link

I also got the same problem,“ZMQ_server::connect(): invalid message”, and then bwapi crashed。

@0x7CFE
Copy link

0x7CFE commented Apr 29, 2017

Looks like it's because of protocol incompatibility. Current TorchCraft server uses FlatBuffers as a serialization backend.

The mentioned error is thrown by the server logic. It's context implies that received message was not parsed successfully. If we look here we'll see that TorchCraft-py simply tries to write the text message to the ZMQ socket.

P.S.: I'm using TorchCraft-py as an reference for my pending Rust API. Looks like I need to switch to the original code.

@SafPlusPlus
Copy link

SafPlusPlus commented Apr 30, 2017

To add a little more detail, torchcraft-py using torchcraft protocol version 16, but since torchcraft v1.1 the version of the protocol has been updated to version 17 (which is the one using flatbuffers).

Ideally, torchcraft-py would be updated to support torchcraft protocol version 17. For now you can get torchcraft-py working by using an older version of torchcraft. I replaced the BWEnv.dll in the docker image I was using with version v1.0-2 and attack_weakest.py seemed to work.

Edit: removed misconception about poor performance

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants