quil-lang / qvm

The high-performance and featureful Quil simulator.
Other
411 stars 57 forks source link

qvm server crashes if version check is not disabled #279

Closed steve-jeffrey closed 2 years ago

steve-jeffrey commented 2 years ago

The qvmserver crashes when it is started.

This issue is identical to the issue reported for the quilc server. For further details, (such as the drakma test) please see that issue.

Pre-Report Checklist

Issue Description

The quilc server crashes when it is started.

How to Reproduce

  1. docker pull rigetti/qvm
  2. docker run --rm -it -p 5000:5000 rigetti/qvm -p 5000 -S
  3. wait a short time (about 30 seconds) and the server crashes

Note: the problem can be avoided if a qvmcommand line option is used to disable the version check: --check-sdk-version=False. The default is to run the version check and this causes the server to crash.

Code Snippet

No user code is required.

Error Output

******************************
* Welcome to the Rigetti QVM *
******************************
Copyright (c) 2016-2019 Rigetti Computing.

(Configured with 2048 MiB of workspace and 8 workers.)
(Gates parallelize at 19 qubits.)
(There are 3 kernels and they are used with up to 29 qubits.)
(Features enabled: none)

<134>1 2021-09-30T01:35:36Z bb21fdad5f03 qvm 1 - - Compilation mode disabled.
<135>1 2021-09-30T01:35:36Z bb21fdad5f03 qvm 1 - - Selected simulation method: pure-state
<135>1 2021-09-30T01:35:36Z bb21fdad5f03 qvm 1 - - Starting server on port 5000.
Unhandled USOCKET:NS-TRY-AGAIN-CONDITION in thread #<SB-THREAD:THREAD "Version Check" RUNNING
                                                      {1004B12E73}>:
  Condition USOCKET:NS-TRY-AGAIN-CONDITION was signalled.

Backtrace for: #<SB-THREAD:THREAD "Version Check" RUNNING {1004B12E73}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<USOCKET:NS-TRY-AGAIN-CONDITION {1004BFA4D3}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<USOCKET:NS-TRY-AGAIN-CONDITION {1004BFA4D3}>)
2: (INVOKE-DEBUGGER #<USOCKET:NS-TRY-AGAIN-CONDITION {1004BFA4D3}>)
3: (ERROR USOCKET:NS-TRY-AGAIN-CONDITION :SOCKET NIL)
4: (USOCKET::HANDLE-CONDITION #<SB-BSD-SOCKETS:TRY-AGAIN-ERROR {1004BFA3C3}> NIL "downloads.rigetti.com")
5: (SB-KERNEL::%SIGNAL #<SB-BSD-SOCKETS:TRY-AGAIN-ERROR {1004BFA3C3}>)
6: (ERROR SB-BSD-SOCKETS:TRY-AGAIN-ERROR :ERROR-CODE -3 :SYSCALL "getaddrinfo")
7: (SB-BSD-SOCKETS::ADDRINFO-ERROR "getaddrinfo" -3)
8: (SB-BSD-SOCKETS:GET-HOST-BY-NAME #<unavailable argument>)
9: (USOCKET:GET-HOSTS-BY-NAME "downloads.rigetti.com")
10: (USOCKET:SOCKET-CONNECT "downloads.rigetti.com" 80 :PROTOCOL :STREAM :ELEMENT-TYPE FLEXI-STREAMS:OCTET :TIMEOUT 20 :DEADLINE NIL :NODELAY :IF-SUPPORTED :LOCAL-HOST NIL :LOCAL-PORT NIL)
11: (DRAKMA:HTTP-REQUEST #<PURI:URI http://downloads.rigetti.com/qcs-sdk/versions?qvm=1.17.2> :WANT-STREAM T :PROXY NIL)
12: (QVM-APP::QUERY-LATEST-SDK-VERSION :PROXY NIL)
13: (QVM-APP::SDK-UPDATE-AVAILABLE-P "1.17.2" :PROXY NIL)
14: ((LAMBDA NIL :IN QVM-APP::ASYNCHRONOUSLY-INDICATE-UPDATE-AVAILABILITY))
15: ((LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
16: ((FLET SB-UNIX::BODY :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE))
17: ((FLET "WITHOUT-INTERRUPTS-BODY-4" :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE))
18: ((FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE))
19: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-THREAD::CALL-WITH-MUTEX))
20: (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE) {7FA00E46ED9B}> #<SB-THREAD:MUTEX "thread result lock" owner: #<SB-THREAD:THREAD "Version Check" RUNNING {1004B12E73}>> NIL T NIL)
21: (SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE #<SB-THREAD:THREAD "Version Check" RUNNING {1004B12E73}> NIL #<CLOSURE (LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS) {1004B12E1B}> NIL)
22: ("foreign function: call_into_lisp")
23: ("foreign function: new_thread_trampoline")

unhandled condition in --disable-debugger mode, quitting

Environment Context

Operating System:

Python Version (python -V): as installed in the docker container

Quilc Version (quilc --version): 1.25.1, 1.23.0, 1.21.0

QVM Version (qvm --version): 1.17.2