Skip to content

Commit cf0f4f4

Browse files
merge
2 parents 284d3a3 + 88c71c4 commit cf0f4f4

File tree

380 files changed

+20541
-7563
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

380 files changed

+20541
-7563
lines changed

.github/workflows/on_nightly.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,15 @@ name: On Nightly
22
on:
33
workflow_dispatch:
44
schedule:
5-
- cron: 30 11 * * *
6-
- cron: 0 3 * * *
5+
- cron: 0 4 * * *
76
jobs:
8-
tests:
9-
uses: ./.github/workflows/coverage_report_clusterfuzz.yml
10-
secrets: inherit
11-
if: ${{ github.event_name == 'workflow_dispatch' || github.event.schedule == '30 11 * * *' }}
127
coverage-report:
138
uses: ./.github/workflows/coverage_report.yml
149
secrets: inherit
15-
if: ${{ github.event_name == 'workflow_dispatch' || github.event.schedule == '30 11 * * *' }}
1610
codeql:
1711
uses: ./.github/workflows/codeql.yml
1812
permissions:
1913
security-events: write
20-
if: ${{ github.event_name == 'workflow_dispatch' || github.event.schedule == '30 11 * * *' }}
2114
builds:
2215
uses: ./.github/workflows/builds.yml
2316
with:
@@ -34,4 +27,3 @@ jobs:
3427
ALL,linux_gcc_riscv,ALL
3528
verbose: false
3629
build_arm: true
37-
if: ${{ github.event_name == 'workflow_dispatch' || github.event.schedule == '0 3 * * *' }}

.github/workflows/tests.yml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,25 @@ jobs:
2424
- linux_clang_x86_64
2525
- linux_clang_icelake
2626
- native
27+
- native-no-deps
2728
# Attach additional params to machine types
2829
include:
2930
- test-case: linux_gcc_noarch64
3031
machine: linux_gcc_noarch64
3132
label: X64
32-
extras: "rpath handholding"
3333
deps-extras: "+dev"
34-
targets: "all"
34+
targets: "check"
3535
compiler: gcc
36-
compiler-version: 8.5.0
37-
run-unit-tests: false
38-
run-integration-tests: false
36+
compiler-version: 11.4.0
3937
- test-case: linux_gcc_x86_64
4038
machine: linux_gcc_x86_64
4139
label: X64
4240
extras: "rpath handholding"
4341
deps-extras: "+dev"
4442
targets: "all integration-test fdctl firedancer"
4543
compiler: gcc
46-
compiler-version: 8.5.0
44+
compiler-version: 11.4.0
4745
run-unit-tests: true
48-
run-integration-tests: false
4946
- test-case: linux_gcc_icelake
5047
machine: linux_gcc_icelake
5148
label: icelake
@@ -55,7 +52,6 @@ jobs:
5552
compiler: gcc
5653
compiler-version: 12.4.0
5754
run-unit-tests: true
58-
run-integration-tests: false
5955
- test-case: linux_clang_x86_64
6056
machine: linux_clang_x86_64
6157
label: X64
@@ -65,7 +61,6 @@ jobs:
6561
compiler: clang
6662
compiler-version: 15.0.6
6763
run-unit-tests: true
68-
run-integration-tests: false
6964
- test-case: linux_clang_icelake
7065
machine: linux_clang_icelake
7166
label: icelake
@@ -75,7 +70,6 @@ jobs:
7570
compiler: clang
7671
compiler-version: 15.0.6
7772
run-unit-tests: true
78-
run-integration-tests: false
7973
- test-case: native
8074
machine: native
8175
label: 512G
@@ -86,6 +80,13 @@ jobs:
8680
compiler-version: 15.0.6
8781
run-unit-tests: true
8882
run-integration-tests: true
83+
- test-case: native-no-deps
84+
machine: native
85+
label: X64
86+
extras: no-deps
87+
targets: check
88+
compiler: clang
89+
compiler-version: 15.0.6
8990
runs-on: ${{ matrix.label }}
9091
env:
9192
MACHINE: ${{ matrix.machine }}
@@ -102,9 +103,12 @@ jobs:
102103
compiler: ${{ matrix.compiler }}
103104
compiler-version: ${{ matrix.compiler-version }}
104105
extras: ${{ matrix.deps-extras || '' }}
106+
if: ${{ !contains(matrix.extras, 'no-deps') }}
105107
- uses: ./.github/actions/hugepages
108+
if: ${{ matrix.targets != 'check' }}
106109
- uses: ./.github/actions/cpusonline
107110
- uses: dtolnay/[email protected]
111+
if: ${{ contains(matrix.targets, 'fdctl') }}
108112

109113
- name: clean targets
110114
run: |

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ genhtml/
1010
target/
1111
*.lcov
1212
*.profraw
13+
*.profdata
1314
/report
1415
flamegraph.html
1516
perf.data
@@ -20,7 +21,7 @@ perf.data.old
2021

2122
# Clangd
2223
.cache
23-
.clangd
24+
/.clangd
2425
compile_commands.json
2526

2627
# Rust

NOTICE

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ with this software. If not, see
279279

280280
=======================================================================
281281

282-
'src/flamenco/nanopb' is currently a copy of the Nanopb library at
282+
'src/ballet/nanopb' is currently a copy of the Nanopb library at
283283
https://jpa.kapsi.fi/nanopb/ (imported ca 2023-Nov).
284284

285285
Copyright (c) 2011 Petteri Aimonen <jpa at nanopb.mail.kapsi.fi>
@@ -466,3 +466,68 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
466466
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
467467
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
468468
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
469+
470+
=======================================================================
471+
472+
src/waltz/resolv is currently a modified implementation of the network
473+
code from musl. musl can be found at
474+
https://musl.libc.org/releases/musl-1.2.5.tar.gz
475+
476+
The list of modifications is documented in src/waltz/resolv/README.md
477+
478+
Copyright © 2005-2020 Rich Felker, et al.
479+
480+
Permission is hereby granted, free of charge, to any person obtaining
481+
a copy of this software and associated documentation files (the
482+
"Software"), to deal in the Software without restriction, including
483+
without limitation the rights to use, copy, modify, merge, publish,
484+
distribute, sublicense, and/or sell copies of the Software, and to
485+
permit persons to whom the Software is furnished to do so, subject to
486+
the following conditions:
487+
488+
The above copyright notice and this permission notice shall be
489+
included in all copies or substantial portions of the Software.
490+
491+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
492+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
493+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
494+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
495+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
496+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
497+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
498+
499+
=======================================================================
500+
501+
The fd_h2 library (src/waltz/h2) includes a modified version of the
502+
HPACK Huffman decoder from nghttp2 (circa 2025-Mar). Original sources:
503+
- https://github.com/nghttp2/nghttp2/blob/master/lib/nghttp2_hd.h
504+
- https://github.com/nghttp2/nghttp2/blob/master/lib/nghttp2_hd_huffman.h
505+
- https://github.com/nghttp2/nghttp2/blob/master/lib/nghttp2_hd_huffman.c
506+
- https://github.com/nghttp2/nghttp2/blob/master/lib/nghttp2_hd_huffman_data.c
507+
508+
/*
509+
* nghttp2 - HTTP/2 C Library
510+
*
511+
* Copyright (c) 2013 Tatsuhiro Tsujikawa
512+
*
513+
* Permission is hereby granted, free of charge, to any person obtaining
514+
* a copy of this software and associated documentation files (the
515+
* "Software"), to deal in the Software without restriction, including
516+
* without limitation the rights to use, copy, modify, merge, publish,
517+
* distribute, sublicense, and/or sell copies of the Software, and to
518+
* permit persons to whom the Software is furnished to do so, subject to
519+
* the following conditions:
520+
*
521+
* The above copyright notice and this permission notice shall be
522+
* included in all copies or substantial portions of the Software.
523+
*
524+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
525+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
526+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
527+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
528+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
529+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
530+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
531+
*/
532+
533+
=======================================================================

agave

book/api/metrics-generated.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,16 @@
149149
| bundle_&#8203;transaction_&#8203;received | `counter` | Total count of transactions received, including transactions within bundles |
150150
| bundle_&#8203;packet_&#8203;received | `counter` | Total count of packets received |
151151
| bundle_&#8203;bundle_&#8203;received | `counter` | Total count of bundles received |
152+
| bundle_&#8203;errors_&#8203;protobuf | `counter` | Number of gRPC errors encountered (Protobuf decode/encode error) |
153+
| bundle_&#8203;errors_&#8203;transport | `counter` | Number of gRPC errors encountered (Transport error) |
154+
| bundle_&#8203;errors_&#8203;timeout | `counter` | Number of gRPC errors encountered (I/O timeout) |
155+
| bundle_&#8203;errors_&#8203;no_&#8203;fee_&#8203;info | `counter` | Number of gRPC errors encountered (Bundle dropped due to missing fee info) |
156+
| bundle_&#8203;errors_&#8203;ssl_&#8203;alloc | `counter` | Number of gRPC errors encountered (OpenSSL alloc fail) |
157+
| bundle_&#8203;heap_&#8203;size | `gauge` | Workspace heap size |
158+
| bundle_&#8203;heap_&#8203;free_&#8203;bytes | `gauge` | Approx free space in workspace |
159+
| bundle_&#8203;shredstream_&#8203;heartbeats | `counter` | Number of ShredStream heartbeats successfully sent |
160+
| bundle_&#8203;keepalives | `counter` | Number of HTTP/2 PINGs acknowledged by server |
161+
| bundle_&#8203;connected | `gauge` | 1 if connected to the bundle server, 0 if not |
152162

153163
## Verify Tile
154164
| Metric | Type | Description |

config/everything.mk

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
MAKEFLAGS += --no-builtin-rules
22
MAKEFLAGS += --no-builtin-variables
33
.SUFFIXES:
4-
.PHONY: all info bin rust include lib unit-test integration-test fuzz-test help clean distclean asm ppp show-deps
4+
.PHONY: all info check bin rust include lib unit-test integration-test fuzz-test help clean distclean asm ppp show-deps
55
.PHONY: run-unit-test run-integration-test run-script-test run-fuzz-test
66
.PHONY: seccomp-policies cov-report dist-cov-report frontend
77
.SECONDARY:
@@ -13,7 +13,10 @@ CPPFLAGS+=-DFD_BUILD_INFO=\"$(OBJDIR)/info\"
1313
CPPFLAGS+=$(EXTRA_CPPFLAGS)
1414

1515
# Auxiliary rules that should not set up dependencies
16-
AUX_RULES:=clean distclean help show-deps run-unit-test run-integration-test cov-report dist-cov-report seccomp-policies frontend
16+
AUX_RULES:=clean distclean help run-unit-test run-integration-test cov-report dist-cov-report seccomp-policies frontend
17+
18+
# Dry rules that should set up dependency targets, but not generate them
19+
DRY_RULES:=check show-deps
1720

1821
all: info bin include lib unit-test fuzz-test
1922

@@ -48,6 +51,7 @@ help:
4851
# Explicit goals are: all bin include lib unit-test integration-test help clean distclean asm ppp
4952
# "make all" is equivalent to "make bin include lib unit-test fuzz-test"
5053
# "make info" makes build info $(OBJDIR)/info for the current platform (if not already made)
54+
# "make check" quickly checks for obvious compile errors
5155
# "make bin" makes all binaries for the current platform (except those requiring the Rust toolchain)
5256
# "make include" makes all include files for the current platform
5357
# "make lib" makes all libraries for the current platform
@@ -356,6 +360,12 @@ $(OBJDIR)/obj/%.i : src/%.cxx $(OBJDIR)/info
356360
$(MKDIR) $(dir $@) && \
357361
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -E $< -o $@
358362

363+
$(OBJDIR)/obj/%.check : src/%.c
364+
@$(CC) $(CPPFLAGS) $(CFLAGS) -fsyntax-only $<
365+
366+
$(OBJDIR)/obj/%.check : src/%.cxx
367+
@$(CXX) $(CPPFLAGS) $(CXXFLAGS) -fsyntax-only $<
368+
359369
$(OBJDIR)/lib/%.a :
360370
#######################################################################
361371
# Creating library $@ from $^
@@ -402,7 +412,15 @@ $(foreach mk,$(shell $(FIND) -L src -type f -name Local.mk),$(eval $(call _inclu
402412
show-deps:
403413
@for d in $(DEPFILES); do echo $$d; done
404414

415+
# Define the check target. Must be after the make fragments include so that
416+
# DEPFILES is fully populated
417+
418+
check: $(DEPFILES:.d=.check)
419+
420+
ifeq ($(filter $(MAKECMDGOALS),$(AUX_RULES) $(DRY_RULES)),)
421+
# Generate dependency files
405422
include $(DEPFILES)
423+
endif
406424

407425
# Define the asm target. Must be after the make fragments include so that
408426
# DEPFILES is fully populated

config/extra/with-no-deps-pre.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Set opt a path that does not exist
2+
OPT:=/nonexistent

config/extra/with-no-deps.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# See with-no-deps-pre.mk

config/extra/with-openssl.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ OPENSSL_LIBS=$(OPT)/lib/libssl.a $(OPT)/lib/libcrypto.a
44
FD_HAS_OPENSSL:=1
55
CPPFLAGS+=-DFD_HAS_OPENSSL=1
66

7-
CPPFLAGS+=-DOPENSSL_API_COMPAT=30000 -DOPENSSL_NO_DEPRECATED
7+
CPPFLAGS+=-DOPENSSL_API_COMPAT=30500 -DOPENSSL_NO_DEPRECATED
88
else
99
$(info "openssl not installed, skipping")
1010
endif

config/machine/native.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ FD_HAS_DOUBLE:=1
5555
CPPFLAGS+=-DFD_HAS_DOUBLE=1
5656
$(call map-define,FD_HAS_ALLOCA, __linux__)
5757
$(call map-define,FD_HAS_THREADS, __linux__)
58-
$(call map-define,FD_HAS_OPENSSL, __linux__)
5958
$(call map-define,FD_HAS_X86, __x86_64__)
6059
$(call map-define,FD_HAS_SSE, __SSE4_2__)
6160
$(call map-define,FD_HAS_AVX, __AVX2__)

plugin/bundle/test-server/Cargo.toml renamed to contrib/bundle-test-server/Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name = "bundle-test-server"
33
version = "0.1.0"
44
edition = "2021"
55

6-
[[bin]]
7-
name = "bundlesvr"
8-
96
[dependencies]
107
tonic = { version = "0.12.2", features = ["tls-roots", "tls", "tls-webpki-roots"] }
118
prost = "0.13.3"

plugin/bundle/build.rs renamed to contrib/bundle-test-server/build.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ fn main() -> Result<(), std::io::Error> {
2424
}
2525

2626
configure()
27-
.build_client(true)
28-
.build_server(false)
27+
.build_client(false)
28+
.build_server(true)
2929
.type_attribute(
3030
"TransactionErrorType",
3131
"#[cfg_attr(test, derive(enum_iterator::Sequence))]",
@@ -34,5 +34,5 @@ fn main() -> Result<(), std::io::Error> {
3434
"InstructionErrorType",
3535
"#[cfg_attr(test, derive(enum_iterator::Sequence))]",
3636
)
37-
.compile_protos(&protos, &[proto_base_path])
37+
.compile_protos(&protos, &[std::path::PathBuf::from("protos")])
3838
}

0 commit comments

Comments
 (0)