Comments (5)
It looks like the server side is complaining of a bad handshake from the client.
[Note] [MY-010914] [Server] Bad handshake
from mysql.
It looks like stream_socket_enable_crypto
inside of the call to setupTls
keeps returning 0
.
EventLoop::queue(function () use ($payload): void {
try {
$this->write(\implode($payload));
$this->socket->setupTls();
$this->sendHandshake(true);
} catch (\Throwable $e) {
$this->free($e);
}
});
from mysql.
It looks like we end up hanging forever because $suspension->suspend();
waits forever after a couple of trips around the while, I guess because the server is done sending bytes, after deciding the client is not behaving itself.
while (true) {
$cancellation->throwIfRequested();
$suspension = EventLoop::getSuspension();
// Watcher is guaranteed to be created, because we throw above if cancellation has already been requested
$cancellationId = $cancellation->subscribe(static function ($e) use ($suspension, &$callbackId): void {
EventLoop::cancel($callbackId);
$suspension->throw($e);
});
$callbackId = EventLoop::onReadable($socket, static function () use (
$suspension,
$cancellation,
$cancellationId,
): void {
$cancellation->unsubscribe($cancellationId);
$suspension->resume();
});
try {
$suspension->suspend();
} finally {
EventLoop::cancel($callbackId);
}
try {
\set_error_handler($errorHandler);
$result = \stream_socket_enable_crypto($socket, enable: true);
if ($result === false) {
$message = \feof($socket) ? 'Connection reset by peer' : 'Unknown error';
throw new TlsException('TLS negotiation failed: ' . $message);
}
} finally {
\restore_error_handler();
}
// If $result is 0, just wait for the next invocation
if ($result === true) {
break;
}
}
from mysql.
@bwoebi Do you have any idea what might be going on here with TLS?
from mysql.
@GrahamCampbell I realize it's been quite some time since you opened this issue, but would you be able to try again with the latest dev-3.x
. I found an issue with connecting with TLS which may have been preventing a proper handshake.
from mysql.
Related Issues (20)
- Request: Connection Example for TLS HOT 4
- Implement Support for Protocol::AuthSwitchRequest
- Can we use Named parameters in SQL queries with amphp\mysql package? HOT 1
- Can we have lastInsertId returned in a different method when UUID is used as Primary Key? HOT 4
- Connection closed unexpectedly HOT 4
- Values not saved when named parameters are used in SQL insert queries with amphp\mysql package HOT 3
- about wrapping CommandResult HOT 1
- multi query with prepared statement HOT 5
- Different query result under transaction
- v3 not work HOT 3
- Connection open + one select + close takes about 30 ms HOT 5
- Prepared Statements don't work with DATETIME columns HOT 2
- Reaching connection limit results in protocol version exception HOT 1
- Incorrect handling of fractional seconds in Datetime, and Timestamp columns HOT 3
- Connection closed unexpectedly HOT 2
- Cannot install HOT 5
- Connection closed unexpectedly HOT 4
- Closing database connection while query is still pending HOT 2
- Infinite recursion when iterating HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mysql.