8000 Tests is frozen on ABCL and CCL on macOS · Issue #113 · usocket/usocket · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Tests is frozen on ABCL and CCL on macOS #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
catap opened this issue Aug 19, 2023 · 4 comments
Open

Tests is frozen on ABCL and CCL on macOS #113

catap opened this issue Aug 19, 2023 · 4 comments

Comments

@catap
Copy link
catap commented Aug 19, 2023

An attempt to run test on ABCL on macOS leads to inifity freez. Console output:

Armed Bear Common Lisp 1.9.2
Java 11.0.20 MacPorts
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.177 seconds.
Startup completed in 0.97 seconds.
Doing 33 pending tests of 33 tests total.
 USOCKET-TEST::MAKE-SOCKET.1 USOCKET-TEST::MAKE-SOCKET.2
 USOCKET-TEST::SOCKET-NO-CONNECT.1 USOCKET-TEST::SOCKET-NO-CONNECT.2
 USOCKET-TEST::SOCKET-NO-CONNECT.3 USOCKET-TEST::SOCKET-FAILURE.1#<USOCKET:NETWORK-UNREACHABLE-ERROR {33386BBA}> is an instance of #<STANDARD-CLASS USOCKET:NETWORK-UNREACHABLE-ERROR {2DAD3960}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  SOCKET             NIL
Test USOCKET-TEST::SOCKET-FAILURE.2 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:TIMEOUT-ERROR NIL) (USOCKET:SOCKET-CONNECT USOCKET-TEST::+NON-EXISTING-HOST+ 80 :TIMEOUT 1) :UNREACH)
Expected value: NIL
Actual value: #<USOCKET:NETWORK-UNREACHABLE-ERROR {33386BBA}>.
 USOCKET-TEST::SOCKET-CONNECT.1 USOCKET-TEST::SOCKET-CONNECT.2
 USOCKET-TEST::SOCKET-CONNECT.3 USOCKET-TEST::SOCKET-STREAM.1
 USOCKET-TEST::SOCKET-NAME.1 USOCKET-TEST::SOCKET-NAME.2
 USOCKET-TEST::SOCKET-NAME.3 USOCKET-TEST::SOCKET-SHUTDOWN.1
 USOCKET-TEST::SOCKET-SHUTDOWN.2 USOCKET-TEST::SOCKET-SHUTDOWN.3#<TYPE-ERROR {798BB63}> is an instance of #<STANDARD-CLASS TYPE-ERROR {3BD22695}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  DATUM              #<sun.nio.ch.SocketAdaptor Socket[unconnected] {25177465}>
  EXPECTED-TYPE      STREAM
Test USOCKET-TEST::SOCKET-LISTEN.1 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (NIL NIL) (USOCKET:WITH-SOCKET-LISTENER (LISTEN "localhost" 9999 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8)) :REUSEADDRESS T :BACKLOG 1) (USOCKET:WITH-CLIENT-SOCKET (USOCKET-TEST::CLIENT USOCKET-TEST::CLIENT-STREAM "localhost" 9999 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8))) (USOCKET:WITH-SERVER-SOCKET (USOCKET-TEST::SERVER (USOCKET:SOCKET-ACCEPT LISTEN)) (WRITE-BYTE 42 USOCKET-TEST::CLIENT-STREAM) (FORCE-OUTPUT USOCKET-TEST::CLIENT-STREAM) (READ-BYTE (USOCKET:SOCKET USOCKET-TEST::SERVER))))))
Expected value: 42
Actual value: #<TYPE-ERROR {798BB63}>.
#<TYPE-ERROR {4AD46DAE}> is an instance of #<STANDARD-CLASS TYPE-ERROR {3BD22695}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  DATUM              #<sun.nio.ch.SocketAdaptor Socket[unconnected] {794A1C7F}>
  EXPECTED-TYPE      STREAM
Test USOCKET-TEST::SOCKET-LISTEN.2 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (NIL NIL) (USOCKET:WITH-SOCKET-LISTENER (LISTEN "0.0.0.0" 9999 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8)) :REUSEADDRESS T :BACKLOG 1) (USOCKET:WITH-CLIENT-SOCKET (USOCKET-TEST::CLIENT USOCKET-TEST::CLIENT-STREAM "localhost" 9999 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8))) (USOCKET:WITH-SERVER-SOCKET (USOCKET-TEST::SERVER (USOCKET:SOCKET-ACCEPT LISTEN)) (WRITE-BYTE 42 USOCKET-TEST::CLIENT-STREAM) (FORCE-OUTPUT USOCKET-TEST::CLIENT-STREAM) (READ-BYTE (USOCKET:SOCKET USOCKET-TEST::SERVER))))))
Expected value: 42
Actual value: #<TYPE-ERROR {4AD46DAE}>.
#<JAVA-EXCEPTION java.net.UnknownHostException: xxx: nodename nor servname provided, or not known {38A29C85}> is an instance of #<STANDARD-CLASS JAVA-EXCEPTION {7C551505}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     "Java exception: ~A."
  FORMAT-ARGUMENTS   (#<java.net.UnknownHostException java.net.UnknownHostException: x.... {3372C61C}>)
  CAUSE              #<java.net.UnknownHostException java.net.UnknownHostException: x.... {62458289}>
Test USOCKET-TEST::NS-HOST-NOT-FOUND-ERROR.1 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:NS-HOST-NOT-FOUND-ERROR NIL) (USOCKET:SOCKET-CONNECT "xxx" 123) T)
Expected value: NIL
Actual value: #<JAVA-EXCEPTION java.net.UnknownHostException: xxx: nodename nor servname provided, or not known {38A29C85}>.
#<USOCKET:CONNECTION-REFUSED-ERROR {47A2EAFB}> is an instance of #<STANDARD-CLASS USOCKET:CONNECTION-REFUSED-ERROR {59CE2A5F}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  SOCKET             NIL
Test USOCKET-TEST::TIMEOUT-ERROR.1 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:TIMEOUT-ERROR NIL) (USOCKET:SOCKET-CONNECT "common-lisp.net" 81 :TIMEOUT 0) T)
Expected value: NIL
Actual value: #<USOCKET:CONNECTION-REFUSED-ERROR {47A2EAFB}>.
 USOCKET-TEST::CONNECTION-REFUSED-ERROR.1#<USOCKET:SOCKET-TYPE-NOT-SUPPORTED-ERROR {1B2C917A}> is an instance of #<STANDARD-CLASS USOCKET:SOCKET-TYPE-NOT-SUPPORTED-ERROR {48698A8C}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  SOCKET             #<sun.nio.ch.ServerSocketAdaptor ServerSocket[unbound] {1D20D5C}>
Test USOCKET-TEST::OPERATION-NOT-PERMITTED-ERROR.1 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:OPERATION-NOT-PERMITTED-ERROR NIL) (USOCKET:SOCKET-LISTEN "127.0.0.1" 81) T)
Expected value: NIL
Actual value: #<USOCKET:SOCKET-TYPE-NOT-SUPPORTED-ERROR {1B2C917A}>.
 USOCKET-TEST::UDP-SEND.1 USOCKET-TEST::UDP-SEND.2
 USOCKET-TEST::MARK-H-DAVID#<USOCKET:PROTOCOL-NOT-SUPPORTED-ERROR {43DFBD2B}> is an instance of #<STANDARD-CLASS USOCKET:PROTOCOL-NOT-SUPPORTED-ERROR {37ADF558}>.
The following slots have :INSTANCE allocation:
  FORMAT-CONTROL     unbound
  FORMAT-ARGUMENTS   NIL
  SOCKET             #<USOCKET:DATAGRAM-USOCKET {6CDB8E03}>
Test USOCKET-TEST::FRANK-JAMES failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:CONNECTION-REFUSED-ERROR NIL) (LET ((USOCKET-TEST::SOCK (USOCKET:SOCKET-CONNECT "localhost" 1234 :PROTOCOL (QUOTE :DATAGRAM) :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8))))) (UNWIND-PROTECT (PROGN (USOCKET:SOCKET-SEND USOCKET-TEST::SOCK (MAKE-ARRAY 16 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8)) :INITIAL-ELEMENT 0) 16) (LET ((USOCKET-TEST::BUFFER (MAKE-ARRAY 16 :ELEMENT-TYPE (QUOTE (UNSIGNED-BYTE 8)) :INITIAL-ELEMENT 0))) (USOCKET:SOCKET-RECEIVE USOCKET-TEST::SOCK USOCKET-TEST::BUFFER 16))) (USOCKET:SOCKET-CLOSE USOCKET-TEST::SOCK))))
Expected value: NIL
Actual value: #<USOCKET:PROTOCOL-NOT-SUPPORTED-ERROR {43DFBD2B}>.

CCL blocks much faster:

Doing 33 pending tests of 33 tests total.
 USOCKET-TEST::MAKE-SOCKET.1 USOCKET-TEST::MAKE-SOCKET.2
 USOCKET-TEST::SOCKET-NO-CONNECT.1 USOCKET-TEST::SOCKET-NO-CONNECT.2
 USOCKET-TEST::SOCKET-NO-CONNECT.3 USOCKET-TEST::SOCKET-FAILURE.1#<USOCKET:HOST-UNREACHABLE-ERROR #x302000ABBBED>
Class: #<STANDARD-CLASS USOCKET:HOST-UNREACHABLE-ERROR>
Wrapper: #<CCL::CLASS-WRAPPER USOCKET:HOST-UNREACHABLE-ERROR #x3020008B578D>
Instance slots
USOCKET:SOCKET: NIL
Test USOCKET-TEST::SOCKET-FAILURE.2 failed
Form: (USOCKET-TEST::WITH-CAUGHT-CONDITIONS (USOCKET:TIMEOUT-ERROR NIL) (USOCKET:SOCKET-CONNECT USOCKET-TEST::+NON-EXISTING-HOST+ 80 :TIMEOUT 1) :UNREACH)
Expected value: NIL
Actual value: #<USOCKET:HOST-UNREACHABLE-ERROR #x302000ABBBED>.
 USOCKET-TEST::SOCKET-CONNECT.1 USOCKET-TEST::SOCKET-CONNECT.2
 USOCKET-TEST::SOCKET-CONNECT.3 USOCKET-TEST::SOCKET-STREAM.1
 USOCKET-TEST::SOCKET-NAME.1 USOCKET-TEST::SOCKET-NAME.2

@catap catap changed the title Tests is frozen on ABCL on macOS Tests is frozen on ABCL and CCL on macOS Aug 19, 2023
@binghe
Copy link
Member
binghe commented Aug 20, 2023

Sorry, the regression tests were not well-maintained for all OS/CL combinations. I will see what I can do.

@xrme
Copy link
xrme commented Jul 17, 2024

As of the change mentioned in Clozure/ccl#508, all of the usocket 0.8.7 tests pass on CCL.

@xrme
Copy link
xrme commented Jul 17, 2024

Oh, I forgot to add that I made this minor local change to usocket:

diff --git a/backend/openmcl.lisp b/backend/openmcl.lisp
index 785bca9..b3f3321 100644
--- a/backend/openmcl.lisp
+++ b/backend/openmcl.lisp
@@ -66,6 +66,8 @@
     #+ccl-1.12
     (ccl::stream-is-closed-error
      (error 'invalid-socket-stream-error :socket socket))
+    (ccl:output-timeout
+       (error 'timeout-error :socket socket))
     (ccl:input-timeout
        (error 'timeout-error :socket socket))
     (ccl:communication-deadline-expired

Not sure if that's right, but it made all the tests pass on my Mac.

@binghe
Copy link
Member
binghe commented Jul 17, 2024

Oh, I forgot to add that I made this minor local change to usocket:

diff --git a/backend/openmcl.lisp b/backend/openmcl.lisp
index 785bca9..b3f3321 100644
--- a/backend/openmcl.lisp
+++ b/backend/openmcl.lisp
@@ -66,6 +66,8 @@
     #+ccl-1.12
     (ccl::stream-is-closed-error
      (error 'invalid-socket-stream-error :socket socket))
+    (ccl:output-timeout
+       (error 'timeout-error :socket socket))
     (ccl:input-timeout
        (error 'timeout-error :socket socket))
     (ccl:communication-deadline-expired

Not sure if that's right, but it made all the tests pass on my Mac.

I will merge this patch. Thanks!

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

No branches or pull requests

3 participants
0