Commit Graph

5837 Commits

Author SHA1 Message Date
Benjamin Summers
87dbcef866 Minor cleanup. 2019-04-29 16:15:25 -07:00
Benjamin Summers
ac8144114b Some Haskell. Now how to build with nix? 2019-04-29 16:01:18 -07:00
Elliot Glaysher
60196a9910 General patch cleanup 2019-04-29 14:23:27 -07:00
Elliot Glaysher
812b841f20 Attempt at fixing compile on CI. 2019-04-29 13:45:40 -07:00
Elliot Glaysher
06cfb81d60 Fix multi-event commit. 2019-04-29 10:59:15 -07:00
Elliot Glaysher
2fe916faac Merge remote-tracking branch 'origin/cc-release' into cc-batched-writes 2019-04-29 10:16:33 -07:00
Elliot Glaysher
8d691a63af Theoretically multi-event writes.
I'm having trouble testing this, though. Every constructed write request
is still only 1 event.
2019-04-29 10:06:03 -07:00
Joe Bryan
a378aac5ff
Merge pull request #1255 from urbit/ccr-cleanup
cc-release general cleanup
2019-04-26 14:53:12 -07:00
Joe Bryan
2c3bf6a9f2 corrects inaccurate u3m_reclaim comment in worker 2019-04-26 14:38:24 -07:00
Joe Bryan
e4db6edb24 restores perror() calls in terminal hijack/lojack to avoid possible reentrance 2019-04-26 14:36:38 -07:00
Joe Bryan
4f3f3897f8 moves _pier_apply into uv_idle_t, runs once per libuv turn 2019-04-26 14:24:01 -07:00
Joe Bryan
9196f7cc4a removes obsolete members from persistent u3A struct 2019-04-26 13:59:37 -07:00
Joe Bryan
56750c5f59 updates worker to store interim lifecycle events in u3V 2019-04-26 13:57:11 -07:00
Joe Bryan
1f86128b69 restores external arvo time on event failure 2019-04-26 13:56:42 -07:00
Joe Bryan
be254c57ae moves mug chaining enforcement entirely into the worker 2019-04-26 13:31:29 -07:00
Joe Bryan
b6b84b5369 updates the worker to track in-progress vs completed event numbers 2019-04-26 11:27:20 -07:00
Joe Bryan
45fff7f8da restores kernel mug when restarting the worker (on %play) 2019-04-26 11:13:49 -07:00
Elliot Glaysher
51253dca5d Build write request struct. 2019-04-26 11:08:10 -07:00
Joe Bryan
6b362c4008 tweaks event reference counting and fixes mis-fixed memory leak 2019-04-26 08:55:26 -07:00
Joe Bryan
3900d1a0c2 removes superfluous seeding of the openssl prng 2019-04-25 23:17:59 -07:00
Joe Bryan
edc142019e replaces perror() with u3l_log() 2019-04-25 23:17:59 -07:00
Joe Bryan
3b9a19d2f9 adds lmdb to library version report 2019-04-25 23:17:59 -07:00
Joe Bryan
5d0f1e1465 Merge branch 'master' into ccr-cleanup
* master:
  bump urbit version number
  if sweep gives 0 and reference count != 0, leak
  added urbit, curl and argon2 to version reporting (urbit -R)
  [CI] bump pinned arvo commit
  bump urbit version number to 0.7.3
  Consistently use "boot:" printf prefix
  Be more precise about the snapshot contents
  Re-add printf to notify of snapshot download
2019-04-25 22:56:14 -07:00
Joe Bryan
df59b1a489
Merge branch 'cc-release' into cc-event-replay-check 2019-04-25 17:04:39 -07:00
Joe Bryan
8fe2835e90
Merge pull request #1251 from BernardoDeLaPlaz/vere_build_warnings
remove all build warnings
2019-04-25 16:53:11 -07:00
Elliot Glaysher
ce0c78d1ea Cleanup 2019-04-25 16:35:29 -07:00
Elliot Glaysher
563214c2a2 Verify mugs on log replay to detect nondeterministic replay.
Joe helped write the worker/main.c changes so that we consistently
return the mug of the current state on each %done message. Then
enabled a check in _pier_work_complete() which asserts that the
recomputed event produces the same state as the next event was
expecting to be applied to.
2019-04-25 16:22:41 -07:00
BernardoDeLaPlaz
043333f767 -Werror turned on 2019-04-25 18:23:53 -04:00
BernardoDeLaPlaz
e9a2784982 Merge branch 'vere_build_warnings' of https://github.com/BernardoDeLaPlaz/urbit into vere_build_warnings 2019-04-25 18:07:06 -04:00
BernardoDeLaPlaz
c0403d2096 code review 2019-04-25 18:05:26 -04:00
Elliot Glaysher
a4ce72355d Store [mug job] instead of the entire IPC message. 2019-04-25 14:57:26 -07:00
Benjamin Summers
4b6509e7a3 Hello-world haskell package. 2019-04-25 14:02:19 -07:00
~rigdyn-sondur
8db9653168
Merge branch 'cc-release' into vere_build_warnings 2019-04-25 16:37:08 -04:00
Joe Bryan
ac59fb749c updates arvo submodule and brass.pill to latest arvo next 2019-04-25 13:35:34 -07:00
BernardoDeLaPlaz
22fe68f67c fix one new build warning 2019-04-25 16:24:55 -04:00
Joe Bryan
4258c3c8ba Merge branch 'cc-release' into ccr-replay-reform
* cc-release: (26 commits)
  Rmoves all calls to u3m_bail() in the database layer. Everything returns an error code.
  Cleaner slog replay + fix spelling error
  Misc cleanup blocking CC-Release. (#1249)
  Use Joe's suggested change to u3_pier_snap().
  u3m_lmdb -> u3_lmdb
  updates libnoun to ignore SIGINT upon completion of a soft
  Cleanup
  Don't print %slog on replay.
  Finish cc-release cross-compilation. (#1202)
  removes clay mount auto-sync on restart
  Cleanup and enable MDB_NOOVERWRITE.
  Remove most u3_foil_* functions.
  Read the latest event number out of lmdb.
  Event log replay succeeds.
  removes obsolete, commented-out signal handling in main.c
  First version which appears to replay most of the event log. Still crashes at the end.
  corrects typos in libnoun commented-out code
  consolidates daemon signal handling
  consistently aborts immediately on ctrl-z (SIGTSTP)
  The entire log appears to be loaded from the database; still need to queue events, but exciting
  ...
2019-04-25 13:06:03 -07:00
Elliot Glaysher
0a0d7e0e57
Merge pull request #1248 from urbit/cc-lmdb-log-storage
Use lmdb for log storage instead of hand-rolled structure
2019-04-25 12:50:49 -07:00
~rigdyn-sondur
b7c7b7f6be
Merge branch 'cc-release' into vere_build_warnings 2019-04-25 14:46:11 -04:00
Elliot Glaysher
e0e9a09b58 Rmoves all calls to u3m_bail() in the database layer. Everything returns an error code. 2019-04-25 11:22:26 -07:00
BernardoDeLaPlaz
61bf83ff56 remove all build warnings 2019-04-25 14:01:21 -04:00
Elliot Glaysher
f8ca7b39dd Cleaner slog replay + fix spelling error 2019-04-25 10:47:37 -07:00
Joe Bryan
d0269662c8 fixes memory leak in worker %save handler 2019-04-24 22:21:36 -07:00
Joe Bryan
cfb6202edb tweaks replacement events: %crud contents, %warn structure 2019-04-24 22:21:09 -07:00
benjamin-tlon
3c3f7e761e
Misc cleanup blocking CC-Release. (#1249)
* Move extraneous stuff out of pkg/urbit/*
* s/urb/herb/g
* Removed some boilerplate for `urbit` builds.
* Build urbit tests and run them in the nix build.
2019-04-24 17:27:27 -07:00
Elliot Glaysher
0841e797a9 Use Joe's suggested change to u3_pier_snap(). 2019-04-24 17:05:34 -07:00
Elliot Glaysher
175fd18585 u3m_lmdb -> u3_lmdb 2019-04-24 16:26:27 -07:00
Joe Bryan
62e7c8272b
Merge pull request #1243 from urbit/ccr-signal-reform
cc-release: cleanup of signal handling
2019-04-24 12:52:26 -07:00
Joe Bryan
96ad21c476 updates libnoun to ignore SIGINT upon completion of a soft 2019-04-24 11:29:12 -07:00
Elliot Glaysher
16788f92c1 Cleanup 2019-04-24 11:22:54 -07:00
Elliot Glaysher
d320a7cafe Don't print %slog on replay. 2019-04-24 10:54:19 -07:00
Joe Bryan
d4321aa28c
Merge pull request #1247 from urbit/ccr-start-nosync
cc-release: removes clay mount auto-sync on restart
2019-04-23 20:20:52 -07:00
benjamin-tlon
edd57d380d
Finish cc-release cross-compilation. (#1202)
- Fixes the IPC bug
- Fixes the terminfo bug
- Moves the OSX SDK out of our nixcrpkgs fork.
- Vendor nixcrpkgs instead of having it be a submodule.
2019-04-23 19:50:38 -07:00
Joe Bryan
3b5644f582 removes clay mount auto-sync on restart 2019-04-23 18:28:58 -07:00
Joe Bryan
450fd5199e adds additional replacement events
%hole (negative ack) and %warn (%crud failed)
2019-04-23 15:57:46 -07:00
Joe Bryan
1ec9b9eee9 limits event replacement to three attempts 2019-04-23 15:57:46 -07:00
Joe Bryan
6d778bee3f aligns worker printfs, adjusts function indentation 2019-04-23 15:57:34 -07:00
Elliot Glaysher
45b47c21f7 Cleanup and enable MDB_NOOVERWRITE. 2019-04-23 15:30:56 -07:00
Elliot Glaysher
6570b798fd Remove most u3_foil_* functions. 2019-04-23 15:10:03 -07:00
Joe Bryan
26cbb9c7c8 inject fresh entropy on every restart 2019-04-23 15:07:53 -07:00
Elliot Glaysher
cdc3b6562e Read the latest event number out of lmdb. 2019-04-23 15:02:28 -07:00
Elliot Glaysher
8b4f1d8e93 Event log replay succeeds. 2019-04-23 14:15:11 -07:00
Joe Bryan
4dabad9120 restores -P sample-based profiling 2019-04-23 12:56:03 -07:00
Joe Bryan
23cbb45ffe removes obsolete, commented-out signal handling in main.c 2019-04-23 12:04:12 -07:00
Elliot Glaysher
281e352c14 First version which appears to replay most of the event log. Still crashes at the end. 2019-04-23 11:12:09 -07:00
Joe Bryan
ead1b2443e corrects typos in libnoun commented-out code 2019-04-23 10:46:34 -07:00
Joe Bryan
beafc011cd consolidates daemon signal handling 2019-04-23 10:46:34 -07:00
Joe Bryan
075bc5109e consistently aborts immediately on ctrl-z (SIGTSTP) 2019-04-23 10:46:29 -07:00
Elliot Glaysher
5d2468056c The entire log appears to be loaded from the database; still need to queue events, but exciting 2019-04-22 16:29:38 -07:00
Elliot Glaysher
dc6e3b2236 (This commit makes sh/make-bootzod work again.) 2019-04-22 10:50:54 -07:00
Elliot Glaysher
96942f3dd5 Joe looked at this; this was because of u3we vs u3ke. 2019-04-19 17:02:57 -07:00
Elliot Glaysher
a849b1b81e WIP: Wrote the skeleton of the reading function. It compiles, but isn't invoked. 2019-04-19 15:49:54 -07:00
Elliot Glaysher
0c36e0da26 Fixes threading so uv_work_t is heap allocated. 2019-04-19 11:17:37 -07:00
Elliot Glaysher
a10beebd47 Wrote out the asynchronous writing, but it crashes in the nock thread now? 2019-04-19 10:28:58 -07:00
Elliot Glaysher
2bef1a30da First minor integration with lmdb.
This stores the ship's identity information in a separate META table in
the lmdb datastore.
2019-04-18 14:01:44 -07:00
Elliot Glaysher
4cf58f27bd Cleanups 2019-04-16 10:14:15 -07:00
Elliot Glaysher
2aa45f828e Restore git submodule screw up. 2019-04-15 15:57:06 -07:00
Elliot Glaysher
29d40e032e Also remove uH/uL macros. 2019-04-15 15:14:07 -07:00
Elliot Glaysher
1e468f75d6 Pass stderr from worker to daemon. 2019-04-15 15:06:19 -07:00
Elliot Glaysher
4f313f05fa Merge remote-tracking branch 'origin/cc-release' into cc-enhancements 2019-04-15 14:25:50 -07:00
Joe Bryan
ea30e715dd uses stderr in daemon mode for slog printing 2019-04-12 22:51:43 -07:00
Joe Bryan
417dbf298b (re-)disable terminal spinner in daemon mode 2019-04-12 22:27:41 -07:00
Joe Bryan
4ccf069458 restores terminal spinner 2019-04-12 22:15:59 -07:00
Joe Bryan
2585e1ca76 adds argument comment to _serf_send_slog 2019-04-12 22:15:59 -07:00
Joe Bryan
05ce835b55 miscellaneous output cleanup 2019-04-12 22:14:55 -07:00
Joe Bryan
daac99c91e moves slog function pointer to u3C (to preserve across roads) 2019-04-12 22:13:00 -07:00
Joe Bryan
4873309e81 send slog hints over the king/serf pipe 2019-04-12 22:12:31 -07:00
Joe Bryan
3eaa470d98 moves slog implementation out of trace.c and libnoun
and removes unused u3t_shiv()
2019-04-12 22:11:49 -07:00
Joe Bryan
3f6c9326fb improves error message when attempting to recreate existing ship 2019-04-12 22:07:31 -07:00
Joe Bryan
3f7f57a247 removes obsolete ames initialization on boot 2019-04-12 21:57:33 -07:00
Joe Bryan
93ce637e96 updates arvo submodule to latest master 2019-04-12 21:57:02 -07:00
Joe Bryan
55aa3b70bd refactors/reorders functions in pier.c 2019-04-12 21:48:38 -07:00
Elliot Glaysher
367bf939d2 Move all logging onto a dedicated u3l_log() statement.
This makes things in libnoun not depend on the specifics of the terminal
driver for logging, using a implementor customizable logging function.

This allows the daemon process to intercept all logging lines without
breaking the console, and should allow the worker process to forward all
logging messages to the daemon so the daemon can print them without
breaking the console.
2019-04-12 16:21:35 -07:00
Elliot Glaysher
dbeb2c2a8b Normalize on the preexisting daemon/worker nomenclature.
We were calling the worker process three different things, standardize
on the name worker. Same for the daemon.
2019-04-12 13:30:36 -07:00
Joe Bryan
1b503d9e26 ensure that event-log header is first in the log 2019-04-11 00:11:45 -07:00
Joe Bryan
f5da7da563 reads events in batches of 1K during replay 2019-04-11 00:07:35 -07:00
Joe Bryan
2eff7240ac refactors event-log replay preparation 2019-04-10 23:50:47 -07:00
Joe Bryan
8c0a8a182f adds explicit boot controller, refactors state transitions 2019-04-10 23:32:13 -07:00
Joe Bryan
671eeaaf00 prevent spurious first-boot of existing pier 2019-04-10 23:18:54 -07:00
Joe Bryan
f68e27e68a removes superfluous pier liv_o flag 2019-04-10 22:33:40 -07:00
Joe Bryan
785839db5c
Merge pull request #1232 from urbit/ccr-vent-sane
cc-release event state machine corrections
2019-04-05 16:58:46 -07:00
Isaac Visintainer
f9a61b36a3 fixes for review 2019-04-05 15:03:19 -07:00
Isaac Visintainer
7c9b8d71ef put tracing calls in serf 2019-04-05 14:56:58 -07:00
Isaac Visintainer
cf3ddef76a moved path prettyprinting into noun/manage, and made it globally available 2019-04-05 14:56:12 -07:00
Isaac Visintainer
03ae60505b load pier directory on serf for saving tracing files 2019-04-05 14:56:11 -07:00
Isaac Visintainer
5c88da2619 fix serf flag size 2019-04-05 14:56:11 -07:00
Joe Bryan
92ece2d22a enforces snapshot/commit ordering constraints 2019-04-05 14:40:18 -07:00
Joe Bryan
4fb35aaee3 moves boot-barrier callback into _pier_work_release and refactors 2019-04-05 14:33:36 -07:00
Joe Bryan
7f116290aa adds explicit pier states, uses for playback printfs 2019-04-05 11:45:57 -07:00
Joe Bryan
a4735e8c93 adds explicit _pier_writ_unlink function 2019-04-05 11:45:57 -07:00
Joe Bryan
aaa5b31969 fixes _pier_work_poke reference counting 2019-04-05 11:45:57 -07:00
Joe Bryan
28c7131cc8 revises handling of event-log header 2019-04-05 11:45:57 -07:00
Joe Bryan
e22312ea14 initalizes persistence and starts the serf in parallel 2019-04-05 11:45:57 -07:00
Joe Bryan
6c932e5304 restructures pier startup 2019-04-05 11:43:34 -07:00
Joe Bryan
cf89e34a8a move disk_init/complete 2019-04-05 11:43:34 -07:00
Joe Bryan
1b456d1121 asserts lifecycle barrier is > 0, sets when reading event-log header 2019-04-05 11:43:42 -07:00
Joe Bryan
02abafef4e consolidates single-home logic 2019-04-05 11:43:34 -07:00
Joe Bryan
45d892d946 WIP extracts event-log header read and single-home 2019-04-05 11:43:34 -07:00
Joe Bryan
b33c50d117 WIP refactors log init, adds explicit "live" flag 2019-04-05 11:43:38 -07:00
Joe Bryan
8162a5177d WIP refactors serf init, adds explicit "live" flag 2019-04-05 11:43:34 -07:00
Joe Bryan
6eadbaa18d frees u3_writ on dispose 2019-04-05 11:43:34 -07:00
Joe Bryan
80d2a41810 removes obsolete, commented-out boot code 2019-04-05 11:43:34 -07:00
Joe Bryan
ffbc3bbc90 cleans up i/o driver initialization 2019-04-05 11:43:34 -07:00
Joe Bryan
81647bbd7c removes precommits, updates event state machine constraints 2019-04-05 11:43:28 -07:00
Joe Bryan
734adde0b7 adds defines for verbose event state machine printfs 2019-04-05 11:32:50 -07:00
Joe Bryan
4cc3a70498 bumps vere version number 2019-04-02 11:57:14 -07:00
Joe Bryan
9481ff7a6a removes duplication %behn initialization 2019-04-02 11:32:21 -07:00
Benjamin Summers
272263cf4d bumps arvo commit to latest next 2019-04-02 11:31:36 -07:00
Joe Bryan
ea56669696 TCOs +turn jet 2019-04-02 10:40:39 -07:00
Joe Bryan
53ca83f4bc TCOs +weld jet 2019-04-02 10:40:39 -07:00
Joe Bryan
2b3c218d9f for @pilfer-pandex 2019-03-29 10:50:58 -07:00
Joe Bryan
c39f26f02c fixes typo, adds comment per review 2019-03-28 23:38:13 -07:00
Joe Bryan
2c0566c55a Merge branch 'cc-release' into ccr-fast-boot
* cc-release: (69 commits)
  Fixed Nix build errors on Bernardo's Ubuntu. (#1220)
  Removed urb submodule.
  Removed `pkg/ent` submodule.
  Nix Build + Monorepo Structure (#1196)
  Added -P/--output-pill argument (#6)
  Collapse long lines.
  Nix Setup and Docs (#5)
  Instructions for getting dependencies on Ubuntu/Debian
  Whitespace errors.
  Wrote a really stupid configure script.
  Meson tries to hard to be "smart". Replaced with a Makefile.
  Clarify README comment
  Version bump, remove double negative
  Actually try calling getrandom while configuring
  v0.2.0
  v0.1.4
  Add all config vars to config.h.in
  Wrote a config.h.in file for old meson versions.
  Minor cleanup
  Remove assert, add _ent_fail
  ...
2019-03-20 23:53:41 -07:00
Benjamin Summers
02a1443cec Add 'pkg/urb/' from commit '29a2e6a79e59f93e6399225efec6e09bc17f2767'
git-subtree-dir: pkg/urb
git-subtree-mainline: 774f29bd06
git-subtree-split: 29a2e6a79e
2019-03-04 17:35:24 -08:00
Benjamin Summers
774f29bd06 Removed urb submodule. 2019-03-04 17:34:55 -08:00
Benjamin Summers
9618f37965 Add 'pkg/ent/' from commit '31ac2913f14c6f7631f5792ad942605fb2d9fb87'
git-subtree-dir: pkg/ent
git-subtree-mainline: 1207c204cb
git-subtree-split: 31ac2913f1
2019-03-04 16:49:14 -08:00
Benjamin Summers
1207c204cb Removed pkg/ent submodule. 2019-03-04 16:46:58 -08:00
benjamin-tlon
c86879e833
Nix Build + Monorepo Structure (#1196) 2019-03-04 16:43:53 -08:00