Commit 545053f
committed
gh-128679: Fix tracemalloc.stop() race conditions
tracemalloc_alloc(), tracemalloc_realloc(), PyTraceMalloc_Track(),
PyTraceMalloc_Untrack() and _PyTraceMalloc_TraceRef() now check
tracemalloc_config.tracing after calling TABLES_LOCK().
_PyTraceMalloc_Stop() now protects more code with TABLES_LOCK(),
especially setting tracemalloc_config.tracing to 1.
Add a test using PyTraceMalloc_Track() to test tracemalloc.stop()
race condition.1 parent 639e0f3 commit 545053f
File tree
4 files changed
+178
-44
lines changed- Lib/test
- Misc/NEWS.d/next/Library
- Modules
- Python
4 files changed
+178
-44
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | 10 | | |
| 11 | + | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
952 | 953 | | |
953 | 954 | | |
954 | 955 | | |
955 | | - | |
956 | 956 | | |
957 | 957 | | |
958 | 958 | | |
| |||
1101 | 1101 | | |
1102 | 1102 | | |
1103 | 1103 | | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
1104 | 1110 | | |
1105 | 1111 | | |
1106 | 1112 | | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3386 | 3386 | | |
3387 | 3387 | | |
3388 | 3388 | | |
| 3389 | + | |
| 3390 | + | |
| 3391 | + | |
| 3392 | + | |
| 3393 | + | |
| 3394 | + | |
| 3395 | + | |
| 3396 | + | |
| 3397 | + | |
| 3398 | + | |
| 3399 | + | |
| 3400 | + | |
| 3401 | + | |
| 3402 | + | |
| 3403 | + | |
| 3404 | + | |
| 3405 | + | |
| 3406 | + | |
| 3407 | + | |
| 3408 | + | |
| 3409 | + | |
| 3410 | + | |
| 3411 | + | |
| 3412 | + | |
| 3413 | + | |
| 3414 | + | |
| 3415 | + | |
| 3416 | + | |
| 3417 | + | |
| 3418 | + | |
| 3419 | + | |
| 3420 | + | |
| 3421 | + | |
| 3422 | + | |
| 3423 | + | |
| 3424 | + | |
| 3425 | + | |
| 3426 | + | |
| 3427 | + | |
| 3428 | + | |
| 3429 | + | |
| 3430 | + | |
| 3431 | + | |
| 3432 | + | |
| 3433 | + | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
| 3439 | + | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
| 3443 | + | |
| 3444 | + | |
| 3445 | + | |
| 3446 | + | |
| 3447 | + | |
| 3448 | + | |
| 3449 | + | |
| 3450 | + | |
| 3451 | + | |
| 3452 | + | |
| 3453 | + | |
| 3454 | + | |
| 3455 | + | |
| 3456 | + | |
| 3457 | + | |
| 3458 | + | |
| 3459 | + | |
| 3460 | + | |
| 3461 | + | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
| 3465 | + | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
3389 | 3487 | | |
3390 | 3488 | | |
3391 | 3489 | | |
| |||
3532 | 3630 | | |
3533 | 3631 | | |
3534 | 3632 | | |
| 3633 | + | |
3535 | 3634 | | |
3536 | 3635 | | |
3537 | 3636 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
538 | 538 | | |
539 | 539 | | |
540 | 540 | | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
546 | 548 | | |
| 549 | + | |
| 550 | + | |
547 | 551 | | |
548 | 552 | | |
549 | 553 | | |
| |||
559 | 563 | | |
560 | 564 | | |
561 | 565 | | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
562 | 572 | | |
563 | 573 | | |
564 | 574 | | |
565 | | - | |
566 | | - | |
567 | 575 | | |
568 | 576 | | |
569 | 577 | | |
| |||
582 | 590 | | |
583 | 591 | | |
584 | 592 | | |
585 | | - | |
586 | 593 | | |
587 | 594 | | |
588 | 595 | | |
589 | 596 | | |
590 | | - | |
591 | 597 | | |
592 | 598 | | |
593 | | - | |
594 | 599 | | |
595 | | - | |
| 600 | + | |
596 | 601 | | |
597 | | - | |
598 | 602 | | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
599 | 606 | | |
600 | 607 | | |
601 | 608 | | |
| |||
614 | 621 | | |
615 | 622 | | |
616 | 623 | | |
617 | | - | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
618 | 630 | | |
619 | 631 | | |
620 | 632 | | |
| |||
779 | 791 | | |
780 | 792 | | |
781 | 793 | | |
782 | | - | |
| 794 | + | |
783 | 795 | | |
784 | 796 | | |
785 | 797 | | |
786 | 798 | | |
787 | | - | |
788 | 799 | | |
789 | 800 | | |
790 | 801 | | |
791 | 802 | | |
792 | | - | |
793 | 803 | | |
794 | 804 | | |
795 | 805 | | |
| |||
963 | 973 | | |
964 | 974 | | |
965 | 975 | | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
966 | 980 | | |
967 | 981 | | |
968 | 982 | | |
| |||
973 | 987 | | |
974 | 988 | | |
975 | 989 | | |
976 | | - | |
| 990 | + | |
977 | 991 | | |
978 | 992 | | |
979 | 993 | | |
980 | 994 | | |
| 995 | + | |
| 996 | + | |
981 | 997 | | |
982 | 998 | | |
983 | 999 | | |
| |||
1307 | 1323 | | |
1308 | 1324 | | |
1309 | 1325 | | |
1310 | | - | |
1311 | | - | |
| 1326 | + | |
| 1327 | + | |
1312 | 1328 | | |
1313 | | - | |
1314 | | - | |
1315 | | - | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
1316 | 1336 | | |
1317 | 1337 | | |
1318 | | - | |
1319 | | - | |
1320 | | - | |
1321 | | - | |
1322 | 1338 | | |
1323 | | - | |
1324 | 1339 | | |
1325 | 1340 | | |
1326 | 1341 | | |
| |||
1329 | 1344 | | |
1330 | 1345 | | |
1331 | 1346 | | |
1332 | | - | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
1333 | 1355 | | |
1334 | | - | |
| 1356 | + | |
1335 | 1357 | | |
1336 | 1358 | | |
1337 | | - | |
1338 | | - | |
1339 | 1359 | | |
1340 | | - | |
1341 | | - | |
| 1360 | + | |
1342 | 1361 | | |
1343 | 1362 | | |
1344 | 1363 | | |
| |||
1376 | 1395 | | |
1377 | 1396 | | |
1378 | 1397 | | |
1379 | | - | |
1380 | | - | |
1381 | | - | |
1382 | | - | |
1383 | | - | |
1384 | | - | |
1385 | | - | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
1386 | 1408 | | |
| 1409 | + | |
1387 | 1410 | | |
1388 | | - | |
| 1411 | + | |
| 1412 | + | |
1389 | 1413 | | |
1390 | 1414 | | |
1391 | 1415 | | |
| |||
1418 | 1442 | | |
1419 | 1443 | | |
1420 | 1444 | | |
1421 | | - | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
1422 | 1448 | | |
1423 | 1449 | | |
1424 | 1450 | | |
| |||
0 commit comments