Details
-
Task
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Implement a connection management mechanism to Spider to make the connection handing easy.
- Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code.
- Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both ha_spider::conns and SPIDER_TRX::trx_conn_hash and this results in the heap-use-after-free (see linked issues) in many test cases.
- Spider 10.3-10.9 has two types of connections. One is for SQL and the other is for handler statements. The latter one has been deprecated from 10.7 and deleted by 10.10. So, we only implement the connection manager for SQL connections.
- For the ease of the development, I recommend creating a patch for 10.10 first and then backporting it to 10.3.
Attachments
Issue Links
- relates to
-
MDEV-27902 Spider: Crashes, asserts, hangs, memory corruptions and ASAN heap-use-after-free's
-
- Closed
-
-
MDEV-28352 Spider: heap-use-after-free in ha_spider::lock_tables(), heap freed by spider_commit()
-
- Closed
-
-
MDEV-28676 Spider: Got error 12701 when reading table (and possible/previous ASAN: heap-use-after-free in ha_spider::external_lock) when using HANDLER
-
- Closed
-
-
MDEV-28683 Spider: SIGSEGV in spider_db_direct_delete, SIGSEGV in spider_db_connect, ASAN: heap-use-after-free in spider_db_direct_delete
-
- Closed
-
-
MDEV-29962 SIGSEGV in ha_spider::lock_tables on BEGIN after table lock
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Link |
This issue relates to |
Description |
Implement a connection management mechanism to Spider to improve performance and fix memory bugs regarding connections to data nodes.
Spider maintains connections to data nodes at least in {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}}. This results in the heap-use-after-free (see linked issues). Also, |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection should be maintained in a single place Spider maintains connections to data nodes at least in {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}}. This results in the heap-use-after-free (see linked issues). Also, |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection should be maintained in a single place Spider maintains connections to data nodes at least in {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}}. This results in the heap-use-after-free (see linked issues). Also, |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues). Also, |
Link | This issue relates to MENT-1519 [ MENT-1519 ] |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues). Also, |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got by a thread belongs to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Summary | Implement Spider connection manager | Implement connection manager in Spider |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should belong to the thread, not {{ha_spider}} or {{SPIDER_TRX}}. Note that, in the current implementation, a single connection are referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases.. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets and returns connections from the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections are done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to the thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. * Spider 10.3-10.9 has two types of connections. One is for SQL and the other is for handler statements. The latter one has been deprecated from 10.7 and deleted by 10.10. So, we only implement the connection manager for SQL connections. |
Description |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. * Spider 10.3-10.9 has two types of connections. One is for SQL and the other is for handler statements. The latter one has been deprecated from 10.7 and deleted by 10.10. So, we only implement the connection manager for SQL connections. |
Implement a connection management mechanism to Spider to make the connection handing easy.
* Each thread gets/returns connections from/to the connection manager. Allocation and deallocation of connections should be done inside the connection manager code. * Each connection got from the manager should solely belong to a single thread. Note that, in the current implementation, a single connection is referenced by both {{ha_spider::conns}} and {{SPIDER_TRX::trx_conn_hash}} and this results in the heap-use-after-free (see linked issues) in many test cases. * Spider 10.3-10.9 has two types of connections. One is for SQL and the other is for handler statements. The latter one has been deprecated from 10.7 and deleted by 10.10. So, we only implement the connection manager for SQL connections. * For the ease of the development, I recommend creating a patch for 10.10 first and then backporting it to 10.3. |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Fix Version/s | 10.5 [ 23123 ] | |
Fix Version/s | 10.6 [ 24028 ] | |
Fix Version/s | 10.7 [ 24805 ] | |
Fix Version/s | 10.8 [ 26121 ] | |
Fix Version/s | 10.9 [ 26905 ] |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Fix Version/s | 10.12 [ 28320 ] | |
Fix Version/s | 10.11 [ 27614 ] |
Priority | Critical [ 2 ] | Major [ 3 ] |
Assignee | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Fix Version/s | 11.0 [ 28320 ] |
Assignee | Yuchen Pei [ JIRAUSER52627 ] |
Assignee | Yuchen Pei [ JIRAUSER52627 ] |
Link |
This issue relates to |