Commit e4e2657
fix: resolve critical async safety issues identified by code reviewers
- Fix threading.Lock used with async with in Process class (issue #1289)
* Replace sync lock creation with lazy async lock initialization
* Prevents runtime AttributeError in aworkflow method
- Improve thread safety in AsyncPostgres lazy lock initialization
* Add double-checked locking pattern to prevent race conditions
* Ensures only one asyncio.Lock instance created across coroutines
- Remove redundant asyncio import in async_postgres.py
- Improve exception chaining for better error diagnostics
Addresses critical issues raised by Gemini, Qodo, CodeRabbit reviewers.
Co-authored-by: Mervin Praison <MervinPraison@users.noreply.github.com>1 parent cdefa98 commit e4e2657
2 files changed
Lines changed: 10 additions & 5 deletions
File tree
- src
- praisonai-agents/praisonaiagents/process
- praisonai/praisonai/persistence/conversation
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
597 | 597 | | |
598 | 598 | | |
599 | 599 | | |
| 600 | + | |
| 601 | + | |
600 | 602 | | |
601 | 603 | | |
602 | 604 | | |
| |||
Lines changed: 7 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
67 | 69 | | |
68 | 70 | | |
69 | 71 | | |
70 | 72 | | |
71 | | - | |
72 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
80 | | - | |
| 83 | + | |
81 | 84 | | |
82 | 85 | | |
83 | 86 | | |
84 | | - | |
| 87 | + | |
85 | 88 | | |
86 | 89 | | |
87 | 90 | | |
| |||
0 commit comments