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
Active connection is closed, when Lua GC is invoked #9629
Comments
Serpentian
added a commit
to Serpentian/vshard
that referenced
this issue
Jan 29, 2024
Router pings replicas and if they cannot respond in failover_ping_timeout, it detaches connection from this replica. The test checks, that connection is not closed, when long response is done, even if failover_ping_timeout is small. However, when the connection is detached, it can be garbage collected, which leads to 'Connection closed' error. Let's stop Lua GC for the connection by creating reference to it. Related to tarantool/tarantool#9629 NO_DOC=test
Gerold103
pushed a commit
to tarantool/vshard
that referenced
this issue
Jan 30, 2024
Router pings replicas and if they cannot respond in failover_ping_timeout, it detaches connection from this replica. The test checks, that connection is not closed, when long response is done, even if failover_ping_timeout is small. However, when the connection is detached, it can be garbage collected, which leads to 'Connection closed' error. Let's stop Lua GC for the connection by creating reference to it. Related to tarantool/tarantool#9629 NO_DOC=test
Apparently future object should keep a reference to the connection. |
CuriousGeorgiy
added a commit
to CuriousGeorgiy/tarantool
that referenced
this issue
Mar 21, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix>
CuriousGeorgiy
added a commit
to CuriousGeorgiy/tarantool
that referenced
this issue
Mar 21, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix>
CuriousGeorgiy
added a commit
to CuriousGeorgiy/tarantool
that referenced
this issue
Mar 23, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix>
CuriousGeorgiy
added a commit
to CuriousGeorgiy/tarantool
that referenced
this issue
Mar 27, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix>
sergepetrenko
added
the
2.11
Target is 2.11 and all newer release/master branches
label
Mar 27, 2024
sergepetrenko
pushed a commit
that referenced
this issue
Mar 27, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes #9629 NO_DOC=<bugfix>
sergepetrenko
pushed a commit
to sergepetrenko/tarantool
that referenced
this issue
Mar 27, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix> (cherry picked from commit fb5bf51)
sergepetrenko
pushed a commit
to sergepetrenko/tarantool
that referenced
this issue
Mar 27, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes tarantool#9629 NO_DOC=<bugfix> (cherry picked from commit fb5bf51)
This was referenced Mar 27, 2024
sergepetrenko
pushed a commit
that referenced
this issue
Mar 28, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes #9629 NO_DOC=<bugfix> (cherry picked from commit fb5bf51)
sergepetrenko
pushed a commit
that referenced
this issue
Mar 28, 2024
In order to prevent the garbage collection of the discarded connection, asynchronous requests must reference the connection object. We must reference the connection object rather than the transport object, because our garbage collection hook is attached to the former. Closes #9629 NO_DOC=<bugfix> (cherry picked from commit fb5bf51)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bug description
The connection is closed, when it's active but it doesn't have any strong references. It's caused by Lua GC. Related: tarantool/vshard#469
Steps to reproduce
Actual behavior
If you'll delete
collectgarbage
the test will probably pass. If you'll create ref to conn, test also passes e.g:Expected behavior
Connection should be active while request is done.
The text was updated successfully, but these errors were encountered: