• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

m-lab / ndt-server
77%

Build:
DEFAULT BRANCH: main
Repo Added 11 Jan 2019 09:27PM UTC
Files 37
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • KwadroNaut-patch-1
  • add-claude-github-actions-1777994309333
  • add-full-stack-dockerfile
  • add-libndt-integration-tests
  • add-packet-headers-to-fullstack
  • add-to-output
  • add-version-metric
  • bassosimone-patch-1
  • ci/release-binaries
  • ci/release-binaries-runner-temp
  • connection-info
  • coverage
  • dependabot/go_modules/cmd/generate-schemas/github.com/apache/thrift-0.23.0
  • dependabot/go_modules/cmd/generate-schemas/golang.org/x/net-0.38.0
  • dependabot/go_modules/cmd/generate-schemas/golang.org/x/oauth2-0.27.0
  • dependabot/go_modules/cmd/generate-schemas/google.golang.org/grpc-1.56.3
  • dependabot/go_modules/cmd/generate-schemas/google.golang.org/grpc-1.79.3
  • dependabot/go_modules/cmd/generate-schemas/google.golang.org/protobuf-1.33.0
  • dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.4
  • dependabot/go_modules/golang.org/x/crypto-0.1.0
  • eliminate-ndt-cloud
  • feature/C
  • feature/cleartext
  • feature/docker
  • feature/il_barbiere_di_siviglia
  • feature/moreshaving
  • feature/ndt7-beta
  • feature/nofloat
  • feature/spec
  • feature/upload
  • feature/yakshaving
  • fix-fullstack
  • fix-legacy-bug
  • fix-nil-bug
  • fix-uuid
  • fix/64
  • fix/79
  • fix/89
  • fix/cors
  • fix/dirnames
  • fix/fourtuple
  • fix/logmessage
  • fix/macos_build
  • fix/ndt7
  • fix/ndt7-datadir
  • fix/perms
  • fix/remove-unused-line
  • fix/socket_cookies
  • fullstack-fix-#211
  • goroutine-leak
  • improve-default-message
  • improve-logging
  • improve-logs
  • issue/103
  • issue/113
  • issue/130
  • issue/194
  • issue/238
  • issue/242
  • issue/34
  • issue/58
  • issue/70
  • jsclient
  • last-features-for-onebox-compatibility
  • main
  • master
  • move-default-webpage
  • ndt5
  • ndt7-locations
  • non-ws-with-json
  • pasta-and-pizza
  • promlint
  • protocol-fix
  • quantization
  • remove-client
  • remove-etl-connection
  • remove-mk
  • revert-232-l7-ping
  • robust-s2c-receive
  • sandbox-cristinaleon-1.20
  • sandbox-cristinaleon-ConnectionInfo
  • sandbox-cristinaleon-fix-build
  • sandbox-cristinaleon-health-endpoint
  • sandbox-cristinaleon-labeling
  • sandbox-cristinaleon-servermetada-panic
  • sandbox-kinkade
  • sandbox-pboothe
  • sandbox-roberto
  • sandbox-roberto-add-canary-flag
  • sandbox-roberto-autocert
  • sandbox-roberto-disable-http2
  • sandbox-roberto-exit-on-failed-write
  • sandbox-roberto-fix-close
  • sandbox-roberto-fix-ndt7-test-termination
  • sandbox-roberto-fix-now
  • sandbox-roberto-generate-schema-dep
  • sandbox-roberto-increase-message-size
  • sandbox-roberto-integration-claims
  • sandbox-roberto-ndt5-schema
  • sandbox-roberto-ndt7-js
  • sandbox-roberto-ndt7-tcpinfo-order
  • sandbox-roberto-pin-go-version
  • sandbox-roberto-remove-cgo
  • sandbox-roberto-remove-fd-calls
  • sandbox-roberto-update-deps
  • sandbox-roberto-update-fullstack
  • sandbox-roberto-update-uuid-dep
  • sandbox-sbs
  • sandbox-sbs-fix-tests
  • sandbox-sbs-pipeline
  • sandbox-soltesz
  • sandbox-soltesz-bbr-enable
  • sandbox-soltesz-count-bbr-success
  • sandbox-soltesz-download-close
  • sandbox-soltesz-errors
  • sandbox-soltesz-eventsocket
  • sandbox-soltesz-explicit-access
  • sandbox-soltesz-fix
  • sandbox-soltesz-fix-bbr-metric
  • sandbox-soltesz-fix-close
  • sandbox-soltesz-fix-crash
  • sandbox-soltesz-fix-flaky
  • sandbox-soltesz-fix-schema
  • sandbox-soltesz-go1.18
  • sandbox-soltesz-jostler-example
  • sandbox-soltesz-labels
  • sandbox-soltesz-lossrate
  • sandbox-soltesz-meta
  • sandbox-soltesz-metrics
  • sandbox-soltesz-migrate-go1.18
  • sandbox-soltesz-monitoring-metrics
  • sandbox-soltesz-ndt7
  • sandbox-soltesz-ndt7-1
  • sandbox-soltesz-ndt7-results
  • sandbox-soltesz-new-keyvalues
  • sandbox-soltesz-nodebug
  • sandbox-soltesz-parameters-txlimits
  • sandbox-soltesz-require-ndt7
  • sandbox-soltesz-rotate
  • sandbox-soltesz-s2c
  • sandbox-soltesz-schema
  • sandbox-soltesz-server-timeout
  • sandbox-soltesz-stringfile-flags
  • sandbox-soltesz-testserver
  • sandbox-soltesz-token
  • sandbox-soltesz-txctl-plain
  • sandbox-soltesz-txwatcher
  • sandbox-soltesz-uncompressed
  • sandbox-soltesz-unified-schema
  • save-data2
  • smooth_c2s
  • soltesz-bbrconn
  • soltesz-fix-error-metrics
  • soltesz-fix-netx-dec
  • soltesz-local-testing
  • soltesz-logerr
  • soltesz-ndt5-labels
  • soltesz-ndt7-metrics
  • soltesz-remove-fdcache
  • soltesz-replace-fdcache
  • soltesz-simple-upload
  • support-plain-clients
  • tlv-support
  • unify-timeouts
  • update-readme-clients
  • use-forwarded-for-hint-of-client-ip
  • uuid
  • uuid_prefixes_in_tmpfiles
  • v0.10.0
  • v0.10.1
  • v0.10.2
  • v0.11.0
  • v0.12.0
  • v0.13.0
  • v0.13.1
  • v0.13.2
  • v0.13.3
  • v0.13.4
  • v0.14.0
  • v0.14.1
  • v0.14.2
  • v0.15.0
  • v0.16.0
  • v0.17.0
  • v0.18.0
  • v0.18.1
  • v0.18.2
  • v0.19.0
  • v0.20.0
  • v0.20.1
  • v0.20.10
  • v0.20.11
  • v0.20.12
  • v0.20.13
  • v0.20.14
  • v0.20.15
  • v0.20.16
  • v0.20.17
  • v0.20.18
  • v0.20.2
  • v0.20.3
  • v0.20.4
  • v0.20.5
  • v0.20.6
  • v0.20.7
  • v0.20.8
  • v0.20.9
  • v0.6.0
  • v0.6.1
  • v0.6.2
  • v0.6.3
  • v0.7.0
  • v0.8.0
  • v0.8.1
  • v0.8.2
  • v0.9.0
  • v0.9.1
  • vet-etl

15 Oct 2026 11:46AM UTC coverage: 76.695% (-0.1%) from 76.82%
38729695820

push

github

web-flow
feat(ndt5, ndt7): MkdirAll w/ 0775 perms (#440)

This patch modifies ndt5 to use 0775 (it used to be 0777) and ndt7
to use 0775 (it used to be 0755) for MkdirAll.

The permissions with which we create directories are influenced
by the umask under which we are running. A typical umask is
`0o022` (disable write for group and others).

The original motivation for this patch is that `0o755 & ~0o022`
yields `0o755`, which prevents the group from writing. But,
in the context of `byos-debian`, I am working to separate the
privileges of `ndt-server` and of core services. However, if
we run `ndt-server` and `jostler` under different users, we need
`jostler` to delete uploaded files, which, in turn, requires
sharing the group and using `0o775 & ~0o022` to allow the
common group to write (delete) directory entries. The file
permission of `0o644` is fine because `jostler` does not need
to write the files: it suffices to read them.

While working on this patch, however, I noticed that ndt5
was using `0777`, which strikes me as "too much". I do not
think there is any situation in which, regardless of the
umask, anyone not in the proper groups should write the
directories containing the result.

Now, let me elaborate on why I think this change is safe:

1. in `m-lab/k8s-support`, I cannot see any umask override in
any jsonnet file, which suggests that the default is used

2. we use `runc` to run containers AFAICT

3. it seems to me that `runc` uses `0o022` as the default
https://github.com/opencontainers/runc/blob/6659c4a/libcontainer/standard_init_linux.go#L121

4. in `m-lab/autonode`, I also do not see any umask override
but the umask should be `0o022`: `docker run` has `--umask`
and documents that `0o022` (the `runc` default) is used
otherwise; `docker compose` does not seem to have any way
in which to specify the umask in its YAML file

5. likewise in `m-lab/byos-debian` there's no umask override in
the systemd units (default `0o022`; see `systemd.exec(5)`)

FWI... (continued)

2 of 2 new or added lines in 2 files covered. (100.0%)

3 existing lines in 1 file now uncovered.

1833 of 2390 relevant lines covered (76.69%)

1.61 hits per line

Relevant lines Covered
Build:
Build:
2390 RELEVANT LINES 1833 COVERED LINES
1.61 HITS PER LINE
Source Files on main
  • Tree
  • List 37
  • Changed 3
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
38729695820 main feat(ndt5, ndt7): MkdirAll w/ 0775 perms (#440) This patch modifies ndt5 to use 0775 (it used to be 0777) and ndt7 to use 0775 (it used to be 0755) for MkdirAll. The permissions with which we create directories are influenced by the umask under ... push 15 Oct 2026 11:47AM UTC web-flow github
76.69
38702945158 fix/perms Merge ac31ef355 into 140dd0c7f Pull #440 15 Oct 2026 08:04AM UTC web-flow github
76.69
37473437969 main ci: build release binaries outside the checkout (#439) push 06 Oct 2026 01:47PM UTC web-flow github
76.82
37468080275 ci/release-binaries-runner-temp Merge 1c7004f11 into 852df94d7 Pull #439 06 Oct 2026 01:06PM UTC web-flow github
76.82
37462739878 main ci: publish official release binaries (#438) push 06 Oct 2026 12:23PM UTC web-flow github
76.69
37459192011 ci/release-binaries Merge f697227be into 19ecde43c Pull #438 06 Oct 2026 11:52AM UTC web-flow github
76.69
31705680719 main fix(bbr): remove cgo dependency, build statically with CGO_ENABLED=0 (#436) * fix(bbr): remove cgo dependency, build statically with CGO_ENABLED=0 Replace the cgo-based TCP_CC_INFO getsockopt in bbr_linux.go with a pure-Go implementation using g... push 13 Aug 2026 01:37PM UTC web-flow github
76.69
30447894417 main fix(generate-schemas): generate ndt5 schema from NDT5Result (#437) push 29 Jul 2026 11:32AM UTC GitHub github
76.53
30383674831 sandbox-roberto-ndt5-schema Merge f031c0342 into d724ae67f Pull #437 28 Jul 2026 05:37PM UTC GitHub github
76.53
30380592580 sandbox-roberto-remove-cgo Merge d331822e5 into d724ae67f Pull #436 28 Jul 2026 04:57PM UTC web-flow github
76.69
See All Builds (1169)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc