Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

CI: add a tsan-http lane — the stock tsan target compiles ext_http.c out, and #1137 was only found by an ad-hoc one

Open
#1,139 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
73/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
c, shell

Research direction

Start with the Makefile's existing asan-http target and comment, then inspect the CI configuration and tests/http_readiness.py sections [44], [45a], and [45b]. Add the tsan-http build and CI lane with setarch -R and TSAN_OPTIONS=halt_on_error=1, and run the seeded-race control from tests/test_tsan.sh against it so the lane passes normally and detects the intentional race.

Written by the indexing model from the issue text.

Description

area:ci kind:gate-defect

Gap

make tsan builds SRC_V_tsan := $(SOURCES) with $(DEFS_OFF), so ThreadSanitizer never sees ext_http.c — the repo's most concurrent code (thread-per-connection workers, per-worker EigsState, the init responder thread, the shared store). ASan got an asan-http variant for the same structural reason (see the Makefile comment above that target); TSan never did.

Evidence

PR #1138's exit ring built an ad-hoc variant:

make 'VARIANTS=tsan-http-check' 'SRC_V_tsan-http-check=$(SRC_V_asan-http)' \
  'FLAGS_tsan-http-check=$(filter-out $(DEFS_OFF),$(FLAGS_tsan)) -DEIGENSCRIPT_EXT_HTTP=1 -DEIGENSCRIPT_EXT_MODEL=1 -DEIGENSCRIPT_EXT_NET=1 -DEIGENSCRIPT_EXT_DB=0' \
  'LIBS_tsan-http-check=$(LIBS_tsan)' build/tsan-http-check/eigenscript

and ran tests/http_readiness.py against it under setarch -R with TSAN_OPTIONS=halt_on_error=1. It found #1137 (a pre-existing data-race class: g_builtin_binding_count plus four lazily-initialised env caches, all plain globals first written by whichever worker thread asked first) on its first run. The stock tsan CI lane was green throughout.

Ask

  1. A tsan-http Makefile target mirroring asan-http (HTTP+MODEL+NET on, DB off).
  2. A CI lane that builds it and runs at least the HTTP sections of the suite ([44], [45a], [45b]) under setarch -R with halt_on_error=1 — [45a] alone drives 256 concurrent connections and is what surfaced #1137.
  3. tests/test_tsan.sh's seeded-race control should run against this variant too, so the lane proves it can go red.
Dominant language
C
Stars
3
Forks
7
Avg merge
4h 15m
Merged PRs (30d)
106

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from InauguralSystems/EigenScript

All issues in InauguralSystems/EigenScript

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.