Skip to content

Pass node 18.x branch tests when compiled against shared openssl 3.2 #52482

Closed
@kapouer

Description

@kapouer

Version

18.20.1

Platform

linux debian/trixie

Subsystem

No response

What steps will reproduce the bug?

Compile node against shared openssl 3.2.1 on debian/trixie, run tests.

How often does it reproduce? Is there a required condition?

Always reproduce.

What is the expected behavior? Why is that the expected behavior?

Tests pass or fail in an expected way :)

What do you see instead?

One test hangs:
test/parallel/test-tls-junk-closes-server.js

TLS 3832: server emit tlsClientError: [Error: 00E8D1B9EE7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../ssl/record/methods/tls_common.c:654:
] {
  library: 'SSL routines',
  reason: 'packet length too long',
  code: 'ERR_SSL_PACKET_LENGTH_TOO_LONG'
}
NET 3832: destroy
NET 3832: close
NET 3832: close handle
NET 3832: has server
NET 3832: SERVER _emitCloseIfDrained
NET 3832: SERVER handle? true   connections? 0
NET 3832: emit close
NET 3832: emit close
STREAM 3832: readableAddChunk <Buffer 15 03 03 00 02 02 16>
STREAM 3832: emitReadable true false
STREAM 3832: emitReadable null
STREAM 3832: emitReadable_ false 7 false
STREAM 3832: flow null
STREAM 3832: maybeReadMore read 0
STREAM 3832: read 0
STREAM 3832: need readable true
STREAM 3832: length less than watermark true
STREAM 3832: do read
NET 3832: _read - n 16384 isConnecting? false hasHandle? true
STREAM 3832: readableAddChunk null
STREAM 3832: onEofChunk
STREAM 3832: emitReadable_ false 7 true
STREAM 3832: flow null
STREAM 3832: read 0

to be compared with the same setup but shared openssl 3.0:

TLS 510254: server emit tlsClientError: [Error: 00786A80367F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:354:
] {
  library: 'SSL routines',
  reason: 'wrong version number',
  code: 'ERR_SSL_WRONG_VERSION_NUMBER'
}
NET 510254: destroy
NET 510254: close
NET 510254: close handle
NET 510254: has server
NET 510254: SERVER _emitCloseIfDrained
NET 510254: SERVER handle? true   connections? 0
NET 510254: emit close
NET 510254: emit close
STREAM 510254: readableAddChunk null
STREAM 510254: onEofChunk
STREAM 510254: emitReadable_ false 0 true
STREAM 510254: flow null
STREAM 510254: read 0
STREAM 510254: endReadable false
STREAM 510254: endReadableNT false 0
NET 510254: SERVER _emitCloseIfDrained
NET 510254: SERVER: emit close
NET 510254: _final: not ended, call shutdown()
NET 510254: afterShutdown destroyed=false
NET 510254: destroy
NET 510254: close
NET 510254: close handle
NET 510254: emit close

Additional information

The fact openssl 3.2 continues to provide (probably garbarge) data is reminiscent of "marvin" issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    opensslIssues and PRs related to the OpenSSL dependency.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions