Commit c513b39
fix(ndb): avoid unbound lock in delete callback (#17969)
## Summary
This PR fixes a `NameError` that occurs when `ndb.delete()` is called
with `use_datastore=False` inside a transaction while the global cache
is enabled.
The transaction completion callback can reference `lock` even though no
lock is acquired when datastore writes are disabled.
## Changes
- Avoid registering the unlock callback when no lock has been acquired.
- Add a regression test covering this scenario.
## Testing
```bash
python -m pytest tests/unit/test__datastore_api.py -v
```
All 78 tests passed.
Fixes #17926
---------
Co-authored-by: Anthonios Partheniou <partheniou@google.com>1 parent ad99ed1 commit c513b39
2 files changed
Lines changed: 54 additions & 7 deletions
Lines changed: 9 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
434 | 434 | | |
435 | 435 | | |
436 | 436 | | |
| 437 | + | |
437 | 438 | | |
438 | 439 | | |
439 | 440 | | |
| |||
450 | 451 | | |
451 | 452 | | |
452 | 453 | | |
453 | | - | |
| 454 | + | |
| 455 | + | |
454 | 456 | | |
455 | | - | |
456 | | - | |
| 457 | + | |
| 458 | + | |
457 | 459 | | |
458 | | - | |
| 460 | + | |
459 | 461 | | |
460 | | - | |
461 | | - | |
| 462 | + | |
| 463 | + | |
462 | 464 | | |
463 | | - | |
| 465 | + | |
464 | 466 | | |
465 | 467 | | |
466 | 468 | | |
| |||
Lines changed: 45 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
882 | 882 | | |
883 | 883 | | |
884 | 884 | | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
885 | 905 | | |
886 | 906 | | |
887 | 907 | | |
| |||
921 | 941 | | |
922 | 942 | | |
923 | 943 | | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
924 | 969 | | |
925 | 970 | | |
926 | 971 | | |
| |||
0 commit comments