Bug #96372 There is an obvious error in the function trx_rseg_add_rollback_segments
Submitted: 30 Jul 2019 6:42 Modified: 12 Aug 2019 14:01
Reporter: kfpanda kf Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any

[30 Jul 2019 6:42] kfpanda kf
Description:
Hi,
I found an obvious error in the function trx_rseg_add_rollback_segments.
It operates directly on the address n_total_created.
The correct operation should be *n_total_created.

------ The original code

  if (n_total_created != nullptr) {
    n_total_created += n_created;
  }

  return (success);

------Fix the problem

  if (n_total_created != nullptr) {
    *n_total_created += n_created;
  }

  return (success);

How to repeat:
Hi,
I found an obvious error in the function trx_rseg_add_rollback_segments.
It operates directly on the address n_total_created.
The correct operation should be *n_total_created.

------ The original code

  if (n_total_created != nullptr) {
    n_total_created += n_created;
  }

  return (success);

------Fix the problem

  if (n_total_created != nullptr) {
    *n_total_created += n_created;
  }

  return (success);
[30 Jul 2019 12:09] MySQL Verification Team
Hello Mr. kf,

Thank you for your bug report.

It seems to me that you are correct. Currently, pointer is moved , instead of having the value changed. Seems that this pointer is mostly NULL.

Verified as reported.
[12 Aug 2019 14:01] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 8.0.18 release, and here's the changelog entry:

 An error in the internal trx_rseg_add_rollback_segments function was
corrected.
[13 Aug 2019 12:42] MySQL Verification Team
Thank you, Daniel .....