I'm Shamil Abdulaev, a backend and systems engineer. I contribute to CPython, glibc and the Python typing ecosystem, mostly memory-safety and concurrency fixes found with sanitizers.
Each project below expands into the full list of my pull requests and issues. β merged or resolved Β· π‘ open. Pull requests closed without landing are left out. Updated daily by a workflow. Same list on ashm.dev.
python/cpython β 33 merged PRs Β· 40 issues
- β #157412 gh-157378: Fix SyntaxError.offset for "Non-UTF-8 code" error
- π‘ #157370 gh-157364: Fix use-after-free in TextIOWrapper during reentrant detach
- π‘ #157179 gh-157176: Fix GC tracking in PyStructSequence_New
- β #156769 gh-156762: Fix tp_clear slot signature for operator.methodcaller
- β #156403 gh-156402: Modernize annotation usage in libregrtest
- β #156300 gh-156114: Fix crash in perf trampoline with unencodable code names
- β #156130 gh-155911: Fix curses detection with libraries in LIBS
- β #150079 [3.13] gh-142831: Fix use-after-free in json encoder during re-entrant mutation (gh-142851)
- β #150078 [3.14] gh-142831: Fix use-after-free in json encoder during re-entrant mutation (gh-142851)
- β
#148833 gh-148832: Use
-icf=0in BOLT_APPLY_FLAGS - β #148702 gh-148701: Add missing test coverage for asyncio.graph
- β #148595 gh-146553: Fix infinite loop in typing.get_type_hints() on circular __wrapped__
- β #146201 gh-146196: Fix potential Undefined Behavior in _PyUnicodeWriter_WriteASCIIString
- β #145840 gh-144712: Export _Py_jit_entry symbol via PyAPI_DATA
- β #144987 gh-144986: Fix memory leak in atexit.register()
- β #143097 Fix UBSan error in _testcapi: correct create_attr_from_spec signature
- β
#142851 gh-142831: Fix UAF in
_jsonmodule - β #142492 gh-142476: fix memory leak when creating JIT executors
- β
#141554 gh-141553: Fix incorrect function signatures in
_testmultiphase - β #141529 gh-42400: Fix buffer overflow in _Py_wrealpath for long paths
- β
#140910 gh-140594: Fix an out of bounds read when feeding NUL byte to
PyOS_StdioReadline - β #140909 gh-140260: Fix data race in _struct module initialization with subinterpreters
- β #140684 [3.13] gh-140301: Fix memory leak in subinterpreter PyConfig cleanup (GH-140303)
- β #140637 Remove dead stores to 'size' in UTF-8 decoder (unicodeobject.c)
- β #140585 Remove unreachable break statements in _ctypes_test.c
- β #140400 gh-140398: Fix memory leaks in readline module when PySys_Audit fails
- β #140397 [3.13] gh-140306: Fix memory leaks in cross-interpreter data handling
- β #140307 gh-140306: Fix memory leaks in cross-interpreter data handling
- β #140303 gh-140301: Fix memory leak in subinterpreter PyConfig cleanup
- β #140274 gh-140272: Fix memory leak in _gdbm.gdbm.clear()
- β #140265 gh-140257: fix data race on eval_breaker during finalization
- β #140111 gh-140067: Fix memory leak in sub-interpreter creation
- β #139271 gh-139269: Fix unaligned memory access in JIT code patching functions
- β
#138667 gh-138665: Move
platform.invalidate_cachesdocs - β #134750 gh-134664: Document cleanup_socket parameter in asyncio.start_unix_server()
- π‘ #157379
_csv.reader: NULL deref via re-entrant iterator that reaches EOF with an open quoted field - π‘ #157378 Wrong
SyntaxError.offsetfor "Non-UTF-8 code starting with ..." when a non-ASCII character precedes the invalid byte - π‘ #157176 Memory leak on interpreter shutdown when reference cycle exists between
structseqtype and its instance - π‘ #157062 Segfault during BOLT profile collection in
test_functools(fib) when building with--enable-bolt --enable-optimizations - β
#156762
_operator:methodcaller_clearhas the wrong signature for thetp_clearslot (returnsvoid, notint) - π‘ #156570 test.support.warnings_helper.check_warnings() raises KeyError: 'warnings' under -X lazy_imports=all
- π‘ #156402 Modernize annotation usage in libregrtest
- β #151039 Crash: NULL deref in _datetime when a static type outlives its module
- β
#148832 Build: BOLT
-icf=1breaks type-slot function-pointer identity, causes SIGSEGV - β #148775 c-analyzer: bump MAX_SIZES for Modules/clinic/_testclinic.c.h
- β #148701 Add missing test coverage for asyncio.graph
- β #148443 Recursive _testcapi.pyobject_vectorcall() aborts with fatal stack overflow instead of raising RecursionError in a small-stack thread
- β #146429 Uninitialized variable replace usage in charmapencode_output (Objects/unicodeobject.c) discovered by scan-build
- β #146196 Undefined Behavior in _PyUnicodeWriter_WriteASCIIString: NULL pointer passed to memcpy when len is 0
- β
#145953 Segmentation fault in
test_call.py(c_recurse) on Linux with Clang (LTO+PGO) - β
#144986 Memory leak in
atexit.register(): missingPy_DECREFforfunc_argstuple - β
#142985 Build failure with
--enable-experimental-jitand ASan: Memory leak inallocate_executorduring module freezing - β #142543 SIGSEGV in test_isinstance and test_json with --enable-experimental-jit=yes and --with-lto=full
- β #142476 ASan memory leak in test_gc with --enable-experimental-jit (allocate_executor)
- π‘ #141621 UBSan SEGV in
_Py_LazyJitTrampolinewhen building with Clang and--with-undefined-behavior-sanitizer+ experimental JIT - β #141553 Fix incorrect function signatures in _testmultiphase (UBSan)
- β #140431 Segfault in gc_free_threading.c after PR #140262 with ASAN build and free-threading tests
- π‘ #140404 LeakSanitizer detects memory leaks in test_import with _testsinglephase module in subinterpreter
- β #140398 Memory leaks in readline module when PySys_Audit fails
- β #140332 MemorySanitizer: use-of-uninitialized-value in _ssl.txt2obj via OpenSSL's OBJ_txt2obj
- β #140306 Memory leak in test__interpchannels: _PyXIData_New not freed in channel_send
- β #140301 Memory leak in test_capi with subinterpreter creation
- β #140272 Memory leak in _gdbm.gdbm.clear() method: missing free() for gdbm_firstkey() result
- β #140267 ThreadSanitizer reports thread leak in multiprocessing.Manager accepter thread
- β #140260 ThreadSanitizer: data race in _struct module initialization with InterpreterPoolExecutor (free-threading build)
- β #140257 ThreadSanitizer: data race in interpreter_clear() vs take_gil() during finalization with daemon threads
- π‘ #140209 TSAN reports multiple data races, SEGV errors, and thread leaks when running the full test suite
- β #140159 Build Failure in posixmodule.c with Clang, ThreadSanitizer, and free-threaded build enabled
- β
#140120 Memory leak in
hmacmodule with HACL* backend detected by AddressSanitizer - β #140067 Memory leak in test_sys with subinterpreters creation (AddressSanitizer detection)
- π‘ #139834 JIT: Segfault in _Py_LazyJitTrampoline with ASan/UBSan enabled
- β
#139393
test_capi.test_opt.test_call_len_known_lengthfails on JIT+debug builds - β #139288 JIT: Segmentation fault in _Py_LazyJitTrampoline when running test_asyncio after gh-139269 fix
- β
#139269 JIT: UB: unaligned store in
patch_*functions - β #127685 Performance Overhead in Ternary Operator Due to Value Loading vs Constant Loading
sqlalchemy/sqlalchemy β 10 merged PRs Β· 2 issues
- β #13261 Add sqlite.JSONB type for binary JSON storage (SQLite >= 3.45.0)
- β #13244 Remove unused TypeVars and compat import from typing modules
- β #13239 Add mypy ignore comments for Python 3.14 module imports
- β #12989 Fix parameter mutation in orm_pre_session_exec()
- β #12988 Fix type hint for with_for_update() to support tuples of table classes
- β #12568 Remove unused typing imports
- β #12539 refactor(testing-and-utils): Remove unused code and fix style issues
- β #12538 refactor (sql): simplify and optimize internal SQL handling
- β #12535 refactor: clean up unused variables in engine module
- β #12534 refactor: simplify and clean up dialect-specific code
open-webui/open-webui β 8 merged PRs Β· 6 issues
- β #24118 style(env): satisfy ruff lint on backend/open_webui/env.py
- β #22987 refactor: modernize typing
- β #22766 chore: align black with Ruff backend formatting
- β #22594 refactor: modernize type hints and imports in access_control module
- β #22576 feat: add ruff linter & formatter
- β #22265 feat: add OpenTelemetry system metrics instrumentation
- β #21453 i18n: Add missing Russian (ru-RU) translations
- β #8212 feat: Small optimization
- β #23793 feat: cache get_user_by_id β 25% of all DB queries with zero caching
- β #21955 bug: Duplicate images displayed when model with thinking/reasoning generates an image (e.g., Gemini 3 Pro Image Preview)
- β #21641 feat: Add Ruff linter & formatter for Python code quality
- β #21411 bug: File descriptor leak in audio.py and pipelines.py β open() without close
- β #21410 bug: Memory leak in SESSION_POOL, USAGE_POOL and YdocManager (with and without Redis)
- β #9491 Proxy Configuration via Environment Variables and Global Request Sessions
python/typeshed β 8 merged PRs Β· 0 issues
- β #14802 fix(types): cr_frame may be None
- β #14770 cachetools: precise typing for decorators and cached(); expose cache_info/cache_clear and fix keys signatures
- β #14153 Remove corus stubs
- β #14142 Remove caldav stubs
- β #14141 Remove pygit2 stubs
- β #13493 remove pyOpenSSL stubs
- β #12596 Improve type annotations in Flask-Cors stubs
- β #12585 Add missing constants to flask-cors stubs
glibc (sourceware) β 8 committed patches Β· 8 bugs
Patches
- π‘ patch 144254 [v2] libio: Use __wunderflow in _IO_getwline_info
- π‘ patch 143415 [v2] termios: Add tcgetwinsize and tcsetwinsize [BZ #32074]
- β patch 143055 elf: Do not load cache extensions from an old-format ld.so.cache [BZ #34600]
- β patch 142924 [v2] math: Set errno to ERANGE for logb (+-0) [BZ #6793]
- β patch 142808 [v2] libio: Add test for fopen with an empty ", ccs=" value [BZ #34574]
- β patch 142193 stdlib, wcsmbs: Add missing __nonnull to strto*/wcsto* [BZ #33053]
- β patch 134886 [v3] libio: Fix race in _IO_new_file_init_internal initialization order [BZ #33785]
- β patch 134231 hugepages: close fd on error path in __get_thp_mode
- β patch 133861 [v2] manual: clarify _FILE_OFFSET_BITS Y2038 implications [BZ #34095]
- β patch 133858 README: fix stale bug-reporting URL [BZ #34094]
Bugs
- π‘ BZ #34613 sem_open with O_CREAT|O_EXCL returns uninitialized pointer if write fails
- π‘ BZ #34612 localedef: charmap ..(2).. ellipsis incorrectly treated as decimal range
- β BZ #34611 wcsftime ignores '#' and '^' flags for %Z (regression introduced in 79b2667d1e)
- β BZ #34610 fts_open: invalid free on NULL parent with empty argv on allocation failure
- π‘ BZ #34609 authdes_pk_create: free() called on uninitialized pointer on memory allocation failure
- π‘ BZ #34608 wordexp: heap buffer overflow (write of size 1 to malloc(0)) expanding
$* or $ @ with no positional arguments - π‘ BZ #34607 localedef crashes with SIGSEGV in handle_ellipsis when LC_COLLATE contains only an ellipsis
- β BZ #34600 [2.44 regression] ld.so segfaults at startup with an old-format ld.so.cache
streamlit/streamlit β 4 merged PRs Β· 0 issues
typeddjango/django-stubs β 3 merged PRs Β· 0 issues
ag2ai/ag2 β 1 merged PRs Β· 1 issues
- β #2111 fix(io): make console input non-blocking in async processor
- β #2110 [Bug]: Blocking I/O in AsyncConsoleEventProcessor halts the event loop
elastic/elasticsearch β 1 merged PRs Β· 0 issues
- β #117235 Deprecate ChunkingOptions parameter
celery/celery β 1 merged PRs Β· 0 issues
- β #9173 Add check for soft_time_limit and time_limit values
c3lang/c3c β 0 merged PRs Β· 1 issues
- β
#3155 Add monadic operations (
map,bind,or_else) tostd::collections::maybe
llvm/llvm-project β 0 merged PRs Β· 1 issues
- π‘ #163263 [BOLT] llvm-bolt segmentation fault during Python optimization with -frame-opt=hot after allocation combiner pass
pgadmin-org/pgadmin4 β 0 merged PRs Β· 1 issues
- β #8500 Upgrade Dependencies and Base Systems to Latest Versions
litestar-org/litestar β 0 merged PRs Β· 1 issues
- β #3848 Bug: Missing WebSocket Connection State Validation on Close and Message Send Operations



