#355: cl+ssl/drakma fails on https requests ---------------------+----------------- Reporter: charmon | Owner: Type: defect | Status: new Priority: major | Milestone: Component: (A)MOP | Version: Keywords: | ---------------------+----------------- The following shows what happens if you try to fetch a URL using DRAKMA and https:
CL-USER> (ql:quickload 'cl+ssl) To load "cl+ssl": Load 1 ASDF system: cl+ssl ; Loading "cl+ssl" ......... Using probed value of abcl-contrib: '/Users/sly/src/abcl/dist/abcl-contrib.jar'. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/quicklisp/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/mvn/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/jss/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/jfli/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/asdf-jar/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/asdf-install/ to ASDF. Added jar:file:/Users/sly/src/abcl/dist/abcl-contrib.jar!/abcl-asdf/ to ASDF. . ARTIFACT_RESOLVING net.java.dev.jna:jna:pom:4.0.0 ARTIFACT_RESOLVED net.java.dev.jna:jna:pom:4.0.0 (/Users/sly/.m2/repository/net/java/dev/jna/jna/4.0.0/jna-4.0.0.pom) @ central (http://repo1.maven.org/maven2/, releases+snapshots) ARTIFACT_RESOLVING net.java.dev.jna:jna:jar:4.0.0 ARTIFACT_RESOLVED net.java.dev.jna:jna:jar:4.0.0 (/Users/sly/.m2/repository/net/java/dev/jna/jna/4.0.0/jna-4.0.0.jar) @ central (http://repo1.maven.org/maven2/, releases+snapshots) ... (CL+SSL) CL-USER> (ql:quickload 'drakma) To load "drakma": Load 1 ASDF system: drakma ; Loading "drakma" .... (DRAKMA) CL-USER> (drakma:http-request "https://www.google.com/")
A failure in the SSL library occurred on handle #<com.sun.jna.Pointer native@0x7ffe7cc007f0 {6777A3D7}> (return code: 1). SSL error queue: error:140C5042:SSL routines:SSL_UNDEFINED_FUNCTION:called a function you should not call [Condition of type CL+SSL::SSL-ERROR-SSL]
Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [*ABORT] Return to SLIME's top level. 2: [ABORT] Abort thread.
Backtrace: 0: (#<FUNCTION {4026A35B}> #<CL+SSL::SSL-ERROR-SSL {306F7D00}> #<FUNCTION {4026A35B}>) 1: (APPLY #<FUNCTION {4026A35B}> (#<CL+SSL::SSL-ERROR-SSL {306F7D00}> #<FUNCTION {4026A35B}>)) 2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<CL+SSL::SSL-ERROR- SSL {306F7D00}> #<FUNCTION {4026A35B}>) 3: (INVOKE-DEBUGGER #<CL+SSL::SSL-ERROR-SSL {306F7D00}>) 4: (ERROR CL+SSL::SSL-ERROR-SSL :HANDLE #<com.sun.jna.Pointer native@0x7ffe7cc007f0 {6777A3D7}> :RET 1 ...) 5: (#<FUNCTION {28AECC44}> (#<CL+SSL::SSL-STREAM {6BE49939}>)) 6: (#<FUNCTION {6D07A485}> (#<CL+SSL::SSL-STREAM {6BE49939}>)) 7: (GRAY-STREAMS:STREAM-FINISH-OUTPUT #<CL+SSL::SSL-STREAM {6BE49939}>) 8: (SYSTEM::%FINISH-OUTPUT #<CL+SSL::SSL-STREAM {6BE49939}>) 9: (FINISH-OUTPUT #<CL+SSL::SSL-STREAM {6BE49939}>) 10: (#<FUNCTION (LAMBDA (CL+SSL::CALLBACK-ARG-BIO- CL+SSL::CALLBACK-ARG- BUF- CL+SSL::CALLBACK-ARG-N-)) {10C24FAF}> #<com.sun.jna.Pointer native@0x7ffe7cb929c0 {44FD72C1}> #<com.sun.jna.Pointer native@0x7f.. 11: (JCALL #<java.lang.reflect.Method public java.lang.Object com.sun..... {6008072D}> #<com.sun.jna.Function native function SSL_connect(<pro.... {2F0F4C9C}> #<java.lang.Class class java.lang.Integer {15.. 12: (CL+SSL::SSL-CONNECT #<com.sun.jna.Pointer native@0x7ffe7cc007f0 {6777A3D7}>) 13: (CL+SSL:MAKE-SSL-CLIENT-STREAM #<TWO-WAY-STREAM {7FB606A}> :CLOSE- CALLBACK #<FUNCTION {876D33E}> :CERTIFICATE NIL ...) 14: (DRAKMA::MAKE-SSL-STREAM #<TWO-WAY-STREAM {7FB606A}> :CERTIFICATE NIL :KEY NIL ...) 15: (DRAKMA:HTTP-REQUEST "https://www.google.com/") 16: (SYSTEM::%EVAL (DRAKMA:HTTP-REQUEST "https://www.google.com/")) 17: (EVAL (DRAKMA:HTTP-REQUEST "https://www.google.com/")) --more--
I'm not sure if this is an ABCL problem, a DRAKMA problem, a CFFI problem, or a CL+SSL problem, but my guess is it's a ABCL problem.
-- Ticket URL: http://abcl.org/trac/ticket/355 armedbear http://abcl.org armedbear