Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1.2, 10.2.0, 10.3.0
-
Windows 64-bit
Description
MDEV-7108 changed the type of the variable srv_fatal_semaphore_wait_threshold from ulint to ulong but failed to adjust the assignments accordingly.
In MariaDB 10.2, some wrong code reads like this:
my_atomic_addlint(
|
&srv_fatal_semaphore_wait_threshold,
|
SRV_SEMAPHORE_WAIT_EXTENSION);
|
In MariaDB 10.1, it reads like this:
os_increment_counter_by_amount(
|
server_mutex,
|
srv_fatal_semaphore_wait_threshold,
|
SRV_SEMAPHORE_WAIT_EXTENSION);
|
Both of these forms expect the data type to be ulint.
As far as I understand, on most platforms sizeof(ulong)==sizeof(ulint) would hold. Most notably, the sizes are different on 64-bit WIndows (4 and 8 bytes).
The problem was found by wlad by compiling 10.3 cmake -DWITH_ASAN and running tests on Windows.
Attachments
Issue Links
- is caused by
-
MDEV-7108 Made long semaphore wait timeout configurable
-
- Closed
-
Activity
Status | Open [ 1 ] | Confirmed [ 10101 ] |
Assignee | Jan Lindström [ jplindst ] | Vladislav Vaintroub [ wlad ] |
Assignee | Vladislav Vaintroub [ wlad ] | Thirunarayanan B [ thiru ] |
Fix Version/s | 10.4 [ 22408 ] |
issue.field.resolutiondate | 2020-04-16 13:17:02.0 | 2020-04-16 13:17:02.676 |
Fix Version/s | 10.5.0 [ 23709 ] | |
Fix Version/s | 10.4.2 [ 23229 ] | |
Fix Version/s | 10.2 [ 14601 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Assignee | Thirunarayanan Balathandayuthapani [ thiru ] | Marko Mäkelä [ marko ] |
Resolution | Fixed [ 1 ] | |
Status | Confirmed [ 10101 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 85554 ] | MariaDB v4 [ 153785 ] |
thiru, please fix this in 10.1. Maybe we can simply make the variable uint and adjust the primitives accordingly.