Commit Graph

1145 Commits

Author SHA1 Message Date
Rivka Segan
5dd0a3793b call set_record_data_size with accumulated size
set_subkey corrupts record_data_size in a Record struct by calling
set_record_data_size with a value that depends only on the length of
the new subkey value. This leads to various undesirable outcomes, such
as: applications can write more than MAX_RECORD_DATA_SIZE without
encountering the intended "veilid.error.VeilidAPIErrorGeneric:
label='Generic' message='dht record too large'" error message, and
"panicked at 'attempt to subtract with overflow'" (i.e., an attempt to
set a negative value of a size) if a subkey's new length is less than
a subkey's old length. Typically, record_data_size in a Record struct
will be incorrect if a value was set for more than one subkey. Some
users might want to start over with a table_store that doesn't have
any incorrect record_data_size values.

The issue begins here:
6f71c6a00a/veilid-core/src/storage_manager/record_store.rs (L583-L586)

and is triggered here:
6f71c6a00a/veilid-core/src/storage_manager/record_store.rs (L613-L615)

It should be clear that new_record_data_size is only related to the
subkey that is currently being set. The amount of data in the record,
before set_subkey is called, is ignored. It appears that
new_total_size, not new_record_data_size, was intended to be used for
set_record_data_size, and this change succeeds for me in limited
testing but I don't have a comprehensive test suite.

One way to reproduce is by running the code from
https://gitlab.com/vatueil/veilid-file on a greater than 1 MB file
while watching variable values within
veilid-core/src/storage_manager/record_store.rs. For example: "poetry
run file put /usr/bin/tcpdump" (1.3 MB on Ubuntu 23.04). With the
original Veilid code, each of the dozens of subkey writes is checking
whether a roughly 32K value is greater than 1048576, it never is, and
thus there is never a "dht record too large" error. With the patch in
this MR, each of the dozens of subkey writes is checking whether an
ever-increasing value is greater than 1048576, it eventually is, and
the "dht record too large" error is printed. With the patch, one can
work with smaller files, e.g., do "poetry run file put /usr/bin/ssh"
(0.8 MB) followed by "poetry run file get VLD0:<_insert_key_here_>
ssh-copy" and the retrieved file ssh-copy is identical to
/usr/bin/ssh.

The more detailed behavior is that the modified code has
record.total_size of 350 on the first iteration, then 33596, 66842,
100088, etc. The original code also has record.total_size of 350 on
the first iteration, but then stays at 33246 forever (33246 is the
user-supplied subkey size of 32768, plus 128, plus the minimum record
size of 350),
2023-08-26 07:08:47 +00:00
Christien Rioux
6f71c6a00a Merge branch 'python-schema-update-script' into 'main'
veilid-python: update_schema.sh now checks in a few places for veilid-server

See merge request veilid/veilid!151
2023-08-24 23:30:44 +00:00
Mike Phipps
9a46a28a3d veilid-python: update_schema.sh now checks in a few places for veilid-server 2023-08-24 23:30:44 +00:00
Christien Rioux
05ac462401 Merge branch 'public-address-check' into 'main'
Public Address Check Updates

Closes #234, #270, #268, and #275

See merge request veilid/veilid!148
2023-08-24 23:29:06 +00:00
Christien Rioux
248b21a951 proper relay switch, fix wasm 2023-08-24 18:59:33 -04:00
Christien Rioux
a9c173e52f flutter fix 2023-08-24 18:35:37 -04:00
John Smith
6bb35dd6a6 skip publishing relay for fullconenat 2023-08-24 18:35:37 -04:00
John Smith
945215aba1 speed up public address detection 2023-08-24 18:35:37 -04:00
John Smith
4eca53fd9b direct port forward detection 2023-08-24 18:35:37 -04:00
Christien Rioux
654b5dfebc simplify code 2023-08-24 18:35:37 -04:00
Christien Rioux
34c686c227 xfer 2023-08-24 18:35:37 -04:00
Christien Rioux
030a0073da fix public address check 2023-08-24 18:35:37 -04:00
Christien Rioux
07646679d0 Merge branch 'debian-sudo' into 'main'
Update file INSTALL.md

See merge request veilid/veilid!149
2023-08-24 21:18:43 +00:00
Chris Wall
a49c33827b Update file INSTALL.md 2023-08-24 17:41:35 +00:00
Christien Rioux
2716ea8402 Merge branch 'fix-lockapi-dependency' into 'main'
Fix lock_api dependency.

See merge request veilid/veilid!146
2023-08-24 01:41:17 +00:00
Pedro Nunes
aa824c176f Merge branch veilid:main into fix-lockapi-dependency 2023-08-23 15:52:56 +00:00
solace-10
59f4899bca Added exact lock_api dependency. 2023-08-23 16:46:14 +01:00
TC
1fff6cfdcd Merge branch 'move-tests-off-do' into 'main'
Move tests off of Digital Ocean

See merge request veilid/veilid!144
2023-08-22 22:41:04 +00:00
TC
b77beeb3be Tests passed. This commit is a clean up of .gitlab-ci.yml 2023-08-22 21:49:55 +00:00
Christien Rioux
c1d11f0e33 Merge branch 'server-clap-derive' into 'main'
veilid-server with Clap v4

See merge request veilid/veilid!140
2023-08-22 21:12:24 +00:00
Δ ǀ Ξ ȼ
5b2b27cb31 veilid-server with Clap v4 2023-08-22 21:12:23 +00:00
TC
9429d3de6e Update .gitlab-ci.yml file 2023-08-22 19:59:59 +00:00
Christien Rioux
41af6d4c5b Merge branch 'dialinfo-work' into 'main'
Support for DialInfo failover

See merge request veilid/veilid!143
2023-08-22 19:55:14 +00:00
TC
5d714dcf58 Update .gitlab-ci.yml file 2023-08-22 19:40:31 +00:00
TC Johnson
c525a757fd
Move tests off of Digital Ocean
Experimenting with using GitLab SaaS runners to do test CI stages.
2023-08-22 14:36:33 -05:00
Christien Rioux
cb9b19fc9f up connection limits for ws 2023-08-22 15:11:45 -04:00
Christien Rioux
a0d90fa09a bootstrap env var 2023-08-22 15:11:45 -04:00
Christien Rioux
1315766fa9 eliminate network keying from bootstrap name 2023-08-22 15:11:45 -04:00
Christien Rioux
e504da2564 xfer 2023-08-22 15:11:45 -04:00
Christien Rioux
0249b7c7ae dial info failure reprioritization 2023-08-22 15:11:45 -04:00
Christien Rioux
10ec693fb4 Merge branch 'fix/value-data-api-crash' into 'main'
fix: large value_data length in api crashes server

See merge request veilid/veilid!139
2023-08-22 19:00:50 +00:00
Cheradenine Zakalwe
0ce19d85fa fix: large value_data length in api crashes server 2023-08-22 19:00:49 +00:00
Christien Rioux
eb4f29900d Merge branch 'mr-test' into 'main'
Fix a couple of minor speedup issues

See merge request veilid/veilid!142
2023-08-22 18:58:30 +00:00
Christien Rioux
413112b33e Merge branch 'fix/minor-typos' into 'main'
Fix minor typos

See merge request veilid/veilid!141
2023-08-22 18:48:55 +00:00
a1ecbr0wn
3f9f31a0a2
Fix a couple of minor speedup issues 2023-08-22 13:00:53 +01:00
pbarry25
0b018edfe5
Fix minor typos 2023-08-21 20:12:20 -05:00
TC Johnson
513116e672
Version update: v0.1.9 → v0.1.10 2023-08-20 11:37:18 -05:00
TC
e8845df385 Merge branch 'windows-fix' into 'main'
0.1.10 Release : Correct Windows DNS resolution and Crypto issues

Closes #259, #260, and #273

See merge request veilid/veilid!138
2023-08-20 16:33:48 +00:00
John Smith
f43462da8c add more changelog and clean up test output 2023-08-20 12:10:54 -04:00
John Smith
2d454c2654 fix comment 2023-08-20 11:52:54 -04:00
John Smith
c1cbcbe7c1 switch back to Sha512 for ed25519 compliance. add domain separation for signing and crypt 2023-08-20 11:47:29 -04:00
John Smith
76e7c74cc7 Merge branch 'main' of gitlab.com:veilid/veilid into windows-fix 2023-08-20 11:27:18 -04:00
Christien Rioux
1e892321f8 Merge branch 'fix-network-key' into 'main'
fixed network-key arg

Closes #267

See merge request veilid/veilid!137
2023-08-20 15:26:51 +00:00
John Smith
d0fabbe3d9 Merge branch 'main' of gitlab.com:veilid/veilid into windows-fix 2023-08-20 11:25:39 -04:00
Christien Rioux
595b237f64 Merge branch 'ed25519-strict-verification' into 'main'
use strict verification for ed25519

See merge request veilid/veilid!136
2023-08-20 15:25:21 +00:00
John Smith
1a3c87f9f1 fix nul termination 2023-08-20 11:23:17 -04:00
John Smith
964741463e vld0 work 2023-08-20 10:54:26 -04:00
Petr Krutov
d9e0f757b0 fixed network-ket arg 2023-08-20 14:04:30 +04:00
John Smith
a7860d829e dh fix 2023-08-20 01:37:49 -04:00
John Smith
909a2f5362 windows fixess 2023-08-19 21:21:58 -04:00