Opened 7 years ago

Closed 4 years ago

#355 closed defect (fixed)

cl+ssl/drakma fails on https requests

Reported by: charmon Owned by:
Priority: major Milestone: 1.4.0
Component: libraries Version:
Keywords: drakma cl+ssl Cc:
Parent Tickets:

Description

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.

Change History (1)

comment:1 Changed 4 years ago by Mark Evenson

Component: (A)MOPlibraries
Keywords: drakma cl+ssl added
Milestone: 1.4.0
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.