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.
Open-source contributions
Each project expands into the full list of my pull requests and issues. merged or resolved, open. Updated daily.
python/cpython — 33 merged PRs · 40 issues
Pull requests
- #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=0` in 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 `_json` module
- #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_caches` docs
- #134750 gh-134664: Document cleanup_socket parameter in asyncio.start_unix_server()
Issues
- #157379 `_csv.reader`: NULL deref via re-entrant iterator that reaches EOF with an open quoted field
- #157378 Wrong `SyntaxError.offset` for "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 `structseq` type and its instance
- #157062 Segfault during BOLT profile collection in `test_functools` (`fib`) when building with `--enable-bolt --enable-optimizations`
- #156762 `_operator`: `methodcaller_clear` has the wrong signature for the `tp_clear` slot (returns `void`, not `int`)
- #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=1` breaks 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()`: missing `Py_DECREF` for `func_args` tuple
- #142985 Build failure with `--enable-experimental-jit` and ASan: Memory leak in `allocate_executor` during 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_LazyJitTrampoline` when 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 `hmac` module 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_length` fails 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
Pull requests
- #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
Issues
open-webui/open-webui — 8 merged PRs · 6 issues
Pull requests
- #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
Issues
- #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
Pull requests
- #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
Pull requests
typeddjango/django-stubs — 3 merged PRs · 0 issues
Pull requests
ag2ai/ag2 — 1 merged PRs · 1 issues
Pull requests
- #2111 fix(io): make console input non-blocking in async processor
Issues
- #2110 [Bug]: Blocking I/O in AsyncConsoleEventProcessor halts the event loop
elastic/elasticsearch — 1 merged PRs · 0 issues
Pull requests
- #117235 Deprecate ChunkingOptions parameter
celery/celery — 1 merged PRs · 0 issues
Pull requests
- #9173 Add check for soft_time_limit and time_limit values
c3lang/c3c — 0 merged PRs · 1 issues
Issues
- #3155 Add monadic operations (`map`, `bind`, `or_else`) to `std::collections::maybe`
llvm/llvm-project — 0 merged PRs · 1 issues
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
Issues
- #8500 Upgrade Dependencies and Base Systems to Latest Versions
litestar-org/litestar — 0 merged PRs · 1 issues
Issues
- #3848 Bug: Missing WebSocket Connection State Validation on Close and Message Send Operations