Skip to content
View ashm-dev's full-sized avatar

Block or report ashm-dev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ashm-dev/README.md

Hi there πŸ₯·πŸ»

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 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

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

  • 🟑 #13281 Modernize type annotations to PEP 604 union syntax
  • βœ… #13240 mypy errors on Python 3.14 version-gated imports in compat.py
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

  • βœ… #13074 Fix empty Markdown code blocks rendering as β€œundefined”
  • βœ… #11090 Fix encoding
  • βœ… #10410 Time formatting logic update: seconds/minutes/hours display
  • βœ… #10358 Extend st.navigation functionality to support various page input types
typeddjango/django-stubs β€” 3 merged PRs Β· 0 issues

Pull requests

  • βœ… #2504 fix format_lazy typing
  • βœ… #2317 Add Typing for EmailField with Support for String Set and Get Types
  • βœ… #2316 Fixed bugs with RawQuerySet
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

Pinned Loading

  1. typeshed typeshed Public

    Forked from python/typeshed

    Collection of library stubs for Python, with static types

    Python

  2. sqlalchemy sqlalchemy Public

    Forked from sqlalchemy/sqlalchemy

    The Database Toolkit for Python

    Python

  3. cpython cpython Public

    Forked from python/cpython

    The Python programming language

    Python

  4. glibc glibc Public

    C