Commit Graph

4124 Commits

Author SHA1 Message Date
Philip Monk
cbb80e9e7d
vere: bump version to 0.10.6 2020-06-24 19:09:03 -07:00
Philip Monk
f9d02263ee
jets: use appropriate macro 2020-06-24 17:11:46 -07:00
Philip Monk
361e41e78d
noun: add -C to control memo cache size 2020-06-24 17:08:50 -07:00
Fang
202de122ab
vere: if behn scry fails, don't try again
Instead, always fall back to the 10 minute timer as backstop.
2020-06-25 01:01:33 +02:00
Fang
e7ab3c037d
vere: rename behn.c's alm -> alm_o
To adhere to the naming conventions.
2020-06-24 23:33:22 +02:00
Fang
afd1808745
vere: scry out next behn timer for backstop
Instead of potentially waiting ten minutes in the problematic case, we
scry out the next timer from behn and set to that (if we haven't set
a new timer while we were waiting for the scry).
2020-06-24 23:31:25 +02:00
Fang
2be266de8c
vere: warn on invalid behn doze 2020-06-24 23:28:56 +02:00
Philip Monk
71fa03457c
jets: restore fond/play/peek hooks 2020-06-24 13:42:51 -07:00
Fang
a94285208a
behn: improve scry interface
No longer abuse the desk field, instead making use of the path. Reject
any scries outside of the local ship, empty desk and current time as
invalid.

Expose ducts only under a debug endpoint, nothing else should care about
being able to inspect them.

Add scry endpoints for the very next timer (if any), and all timers up
to and including a specified timestamp.
2020-06-24 17:09:29 +02:00
Fang
f714d90b15
arvo: allow the empty desk (%$) in scries
+slaw fails to parse empty strings as %tas, so we special-case it here.
2020-06-24 16:26:32 +02:00
Fang
abf9652628
vere: add -X flag for running a scry
Tries to get a scry result from a /vanecare/desk/path formatted path,
and jams the result to disk (.urb/put/) if it succeeds.
Optionally use -Y to specify a name for the resulting file.
2020-06-24 14:23:56 +02:00
Joe Bryan
46f3a17658 vere: free pier on graceful shutdown 2020-06-23 16:55:38 -07:00
Joe Bryan
a3ae21ea5b vere: removes SIGQUIT handler
we were turning these into SIGABRT in order to catch them and
unmap the lmdb database, but that's neither safe nor reliable.
2020-06-23 16:25:03 -07:00
Joe Bryan
dcdd1e4be9 vere: removes now-unused sniproxy dependency 2020-06-23 16:04:40 -07:00
Philip Monk
6c3b7aeef5
jam: add commented-out functionality to count size of atom
This is a convenient way to count memory usage of noun by simplying
running `(jam 1.337 noun-1 noun-2 ... ~)`.  This should
be a hint, but for debugging this is sufficient.
2020-06-22 19:29:00 -07:00
Philip Monk
fa6748a7e1
jets: cap memo cache and remove peek, play, and fond jets
With these changes, about 90% less memory and 15% less time is needed to
compile hoon.hoon.  The produced noun is within 3% of the same size,
which suggests this results in little if any duplication.

These are three of the four most commonly hit +ut jets.  The other is
+nest, which cannot be un-memoized without taking much longer to compile
(it didn't finish in my test).  These four jets combined for 2.3 million
out of the 2.4 million cache entries, the other +ut jets combine for
less than 100k, and literal ~+ accounted for about 50k entries.

This also caps the memo cache at 50k entries.  Even with these jets not
memoized, the memo cache grows to 357k entries and 122 MB.  Capping at
50k entries has no effect on time and reduces memory usage of the hash
table to about 25MB.  Entries are reclaimed with the clock algorithm,
which seems to be sufficient for this use.
2020-06-22 19:29:00 -07:00
Philip Monk
d8aed4d4af
noun: add functions to count size of noun
Adds a few functions to count the size of nouns in the current road.
Since this marks the nouns (high bit of refcount), you need to
"discount" them immediately after to unmark them.  Parallel functions
exist for the counting the size of a hashtable.

It would nice to hook this up to a hint, but these are useful to have
available to run in the debugger or by inserting callsites as necessary.
It's also possible to hook them up to the +jam jet gated on a special
value.
2020-06-22 19:29:00 -07:00
Joe Bryan
cc93aed354 vere: fixes doubly-linked list handling in u3_auto_drop 2020-06-22 16:35:15 -07:00
Joe Bryan
3330c3eaac vere: disable core dumps in king
lmdb size makes these impractical, and unmapping on SIGABRT
requires canceling threads, which is undefined
2020-06-22 15:47:36 -07:00
Joe Bryan
76cd934864 pier: further limit activity in emergency exit (SIGABRT) 2020-06-22 14:00:17 -07:00
Joe Bryan
e7a95f6d6b ames: count dropped packets (and print every 1k with -v) 2020-06-22 13:50:37 -07:00
Joe Bryan
9816434890 vere: cleans up i/o driver shutdown 2020-06-22 12:58:48 -07:00
Joe Bryan
37cf2135bc term: ignore SIGWINCH if there's no active terminal driver 2020-06-22 12:55:55 -07:00
Joe Bryan
4a48e16f41 vere: refactors king/pier/lord shutdown 2020-06-22 12:55:55 -07:00
Joe Bryan
98040ffa2d newt: adds stop/dispose functions for read and write 2020-06-20 22:21:37 -07:00
Joe Bryan
71d6793943 vere: renames "daemon" to king, removes command socket 2020-06-20 22:21:37 -07:00
Joe Bryan
b75d42c335 vere: adds u3_ovum init/dispose to ward.c 2020-06-20 22:21:24 -07:00
Joe Bryan
5d71e0a804 vere: properly dispose disk resources on exit 2020-06-20 22:18:16 -07:00
Joe Bryan
df7cd2a673 vere: adds common structure management in ward.c 2020-06-20 22:15:58 -07:00
Isaac Visintainer
4fded00005 release: urbit-os-v1.0.23 2020-06-18 17:51:16 -06:00
Matilde Park
506c8996d6 interface/config: fix production build 2020-06-18 18:04:30 -04:00
Liam Fitzgerald
0ac7a75896 soto: run +on-load migration once 2020-06-18 21:47:44 +10:00
Joe Bryan
8497cd65c6 vere: switch lmdb back to the u3 prefix
c3 is intended for language-level functionality.
a prefix that communicates a lack of dependence
on u3 remains desirable.
2020-06-17 17:35:45 -07:00
Joe Bryan
d23d518f48 vere: moves i/o drivers 2020-06-17 16:31:09 -07:00
Joe Bryan
e297458e74 vere: stop leaking effects 2020-06-17 16:20:33 -07:00
Matilde Park
08b4a47589 publish, links: restore full height 2020-06-17 19:13:34 -04:00
Matilde Park
35edce597b interface/CONTRIBUTING: amend for SPA / webpack 2020-06-17 17:41:12 -04:00
Matilde Park
a65edb52cd Merge branch 'master' into feat/spa 2020-06-17 17:12:13 -04:00
Logan Allen
08e1abb139 hood + apps: fix OTA process for feat/SPA 2020-06-17 15:51:13 -04:00
Logan Allen
eaf523e3c2 hood: add version %6 for %file-server upgrade 2020-06-17 14:27:30 -04:00
Matilde Park
304438009e chat: equally size both code + s3 buttons 2020-06-17 13:09:07 -04:00
Matilde Park
2fdbdccae1 Merge branch 'feat/spa' into lf/ios-spa-fixes 2020-06-17 12:56:51 -04:00
Liam Fitzgerald
81a9b0d08e chat: prevent reflow from image loading
Sets a static height on inline images in chat to prevent loss of scroll
position.

Fixes #2883
2020-06-17 16:10:46 +10:00
Liam Fitzgerald
77731f6ca0 chat: scroll on code overflow
Adds a scroll container if code is posted and the code will overflow the
width of the page.

Fixes #2829
2020-06-17 16:08:32 +10:00
Liam Fitzgerald
a2970ce929 chat: cap maximum backlog size at 1000
Caps maximum unread backlog that chat will fetch at 1000 messages.
2020-06-17 15:24:22 +10:00
Matilde Park
5757fd8f5d chat, publish: Filter unreads for current group
Fixes #2897.
2020-06-16 22:27:51 -04:00
Joe Bryan
5c9252e986 vere: fixes u3_auto_drop list-unlink implementation 2020-06-16 18:52:16 -07:00
Joe Bryan
42213269ce ames: fix null-deref in capped queue 2020-06-16 18:47:12 -07:00
Joe Bryan
1dc809662e Merge branch 'release/next-vere' into ipc-redux
* release/next-vere:
  vere: increase LMDB mapsize to 1TB on macOS, linux
  noun: road-size printfs on u3m_fall
2020-06-16 18:06:25 -07:00
Joe Bryan
5e9b90f5a3 serf: disables incomplete "static grab" on boot 2020-06-16 18:01:09 -07:00
Joe Bryan
82e06c31eb ames: cap ovum queue at 1k, dropping oldest packets first 2020-06-16 15:42:58 -07:00
Joe Bryan
755b2f1347 vere: track ovum queue depth per i/o driver 2020-06-16 15:42:41 -07:00
Philip Monk
1acd8fe6d6
Merge branch 'ixv/fix-chat-hook' (#3020)
* origin/ixv/fix-chat-hook:
  chat-hook: pull on store path when removing

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-15 19:58:29 -07:00
Philip Monk
4e3aace970
Merge branch 'jb/aes-siv-fix' (#3013)
* origin/jb/aes-siv-fix:
  tests: updates aes-siv regression test comment
  pill: updates solid
  zuse: propagates fix to aes-128-siv and aes-192-siv as well
  Revert "test: disable aes-siv jets to demonstrate test failure"
  pill: updates solid
  zuse: fixes bug in aes-256-siv iv calculation (+s2vc:aes:crypto)
  test: disable aes-siv jets to demonstrate test failure
  test: add test case for aes-256-siv jet mismatch, observed in the wild

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-15 19:57:01 -07:00
Philip Monk
41537a7467
Merge pull request #3012 from urbit/philip/road-size
noun: road-size printfs on u3m_fall
2020-06-15 19:41:24 -07:00
Philip Monk
9410b4f66d
arvo: +mure is taken 2020-06-15 19:34:30 -07:00
Isaac Visintainer
f0d36f6a52 chat-hook: pull on store path when removing 2020-06-15 16:01:46 -06:00
Matilde Park
34dcc9f971 chat, links, publish: join upon api instantiation 2020-06-15 15:19:00 -04:00
Matilde Park
ef00dc71e4 group-filter: close modal on navigation 2020-06-15 12:45:02 -04:00
Joe Bryan
6d56a95837 tests: updates aes-siv regression test comment 2020-06-12 23:26:10 -07:00
Jared Tobin
6e0cd4ef1a
vere: increase LMDB mapsize to 1TB on macOS, linux
Many ships have been observed bumping up against the existing mapsize
limits.  This results in a Vere crash via LMDB, which necessitates
compiling a new binary with a higher mapsize if one wants to relaunch.

There doesn't seem to be any serious penalty to setting this
somewhere in the terabyte range, though. [1]  In cases where the mapsize
exceeds the size of the disk, I infer from the LMDB docs that the
database may simply be permitted to grow until it runs up against the
disk limitations, which feels acceptable.

I've tested this on macOS and Linux and the binary runs without issue,
despite the mapsize being set far in excess of the disks I'm running on.

[1]: https://lmdb.readthedocs.io/en/release/
2020-06-13 10:08:12 +04:00
Joe Bryan
faa4956969 zuse: propagates fix to aes-128-siv and aes-192-siv as well 2020-06-12 22:21:19 -07:00
Philip Monk
eaa926a086
noun: road-size printfs on u3m_fall 2020-06-12 21:55:51 -07:00
Joe Bryan
3bf0c232d8 Revert "test: disable aes-siv jets to demonstrate test failure"
This reverts commit bb45a47de4.
2020-06-12 21:53:44 -07:00
Joe Bryan
0ddeb6526b zuse: fixes bug in aes-256-siv iv calculation (+s2vc:aes:crypto) 2020-06-12 21:34:04 -07:00
Joe Bryan
bb45a47de4 test: disable aes-siv jets to demonstrate test failure 2020-06-12 21:28:32 -07:00
Joe Bryan
2d66e596cd test: add test case for aes-256-siv jet mismatch, observed in the wild 2020-06-12 21:26:48 -07:00
Philip Monk
4e466214e3
arvo: compile hoon/arvo in separate roads
Adds +mure to run a trap in a separate road.  This should eventually be
just a hint.

Vega was running inside a mule, but since +load was called within vega,
the new kernel was all run within the same mule, so it didn't actually
get to reclaim the space after hoon compiled.

We verified this with printfs in u3m_fall.  On the test ship (from
mainnet) which had 800MB used, vega was taking interior free space from
950MB to 450 over the course of compiling hoon, then each vane would go
from about 450 to 350 and then back to 450 once it finished (which
proves they were correctly isolated).  With this change, after hoon
compiles the free space goes back up to 950MB.  This gives us a lot more
space to compile OTAs.

We had to slightly refactor the logic for doubly-recompiling hoon, since
+mure as written produces a ?(!! _trap), and you can't find faces in the
result of the trap.  We could bake mure, but that's rather awkward.  I
wonder if there's a way to fix this as a wet gate.
2020-06-12 20:51:23 -07:00
~siprel
c523c90bf9 urbit-termsize: Change test executable name. 2020-06-12 18:33:10 +00:00
~siprel
57ef4254e4 Merge branch 'khrc' of https://github.com/urbit/urbit into siprel/sigwinch 2020-06-12 18:27:25 +00:00
~siprel
e8e46ee8c4 Merge branch 'master' of https://github.com/urbit/urbit into siprel/sigwinch 2020-06-12 18:19:51 +00:00
Joe Bryan
8fac63661f vere: removes ncurses dependency 2020-06-11 20:25:46 -07:00
Joe Bryan
6ea2acea86 term: bypass terminfo, use direct ANSI escape sequences 2020-06-11 20:24:38 -07:00
Joe Bryan
c3557e0836 Merge branch 'master' into ipc-redux-kh
* master: (25 commits)
  travis: Fix resource exhaustion error in test build.
  travis: Separate job for Haskell on Linux + bump nix version
  gall: properly handle empty outstanding ack queue
  vere: bump version to 0.10.5
  dawn: switch default eth node
  jets: patch cleanup
  Update os1-bug-report.md
  jets: switch openssl to the loom allocator.
  serf: disable automatic |pack
  release: urbit-os-v1.0.20
  behn: fix +unset-timer
  jael: send breach notifications in order
  jael: don't notify breach on initial update to ship
  jael: look for correct wire
  vere: handle failed cue of private key file
  u3: switches GMP import assert to conditional
  u3: fixes rock:load size printf
  vere: bypass terminal logging on lmdb worker thread
  vere: prevents term.c from retrying tcsetattr() indefinitely
  jets: jet decryption of aes-siv mode.
  ...
2020-06-11 19:07:13 -07:00
Logan Allen
3d3ab7e178 weather: better error printing 2020-06-11 20:15:32 -04:00
Joe Bryan
19da74d146 serf: disables auto |pack, refactors loading from rock (-r) 2020-06-11 16:28:17 -07:00
Joe Bryan
f48dd41ca8 serf: refactors %work $writ handling 2020-06-11 16:27:01 -07:00
Joe Bryan
00fefce334 serf: plugs leak of error-notification event 2020-06-11 16:27:00 -07:00
Joe Bryan
8ef8987b54 newt: adds synchronous read, used in serf with blocking writes 2020-06-11 16:27:00 -07:00
Joe Bryan
3f26140cf4 newt: delivers inbound messages asynchronously 2020-06-11 16:27:00 -07:00
Joe Bryan
a31f27a575 newt: cleans up api, allocates less on write 2020-06-11 16:27:00 -07:00
Joe Bryan
4cfaf08348 newt: print errors to stderr 2020-06-11 16:27:00 -07:00
Joe Bryan
27a9dbe1c0 u3: use u3r_mug_words for all atoms 2020-06-11 16:27:00 -07:00
Joe Bryan
9e305da03c u3: rewrites u3r_mug_words, correct for arbitrary input 2020-06-11 16:27:00 -07:00
Joe Bryan
2c5a1adea3 u3: adds failing u3r_mug_words tests 2020-06-11 16:27:00 -07:00
Joe Bryan
e7eceba965 u3: implements u3i_list()/u3nl() varargs list constructor 2020-06-11 16:27:00 -07:00
Joe Bryan
406a823ddd u3: adds allocator profiling labels to u3i_* atom functions 2020-06-11 16:27:00 -07:00
Joe Bryan
1d1a263e48 u3: rewrites u3i_chubs() for efficiency 2020-06-11 16:27:00 -07:00
Joe Bryan
c78bc69758 u3: cleans up imprison.h/c 2020-06-11 16:27:00 -07:00
Joe Bryan
e7ff4550db u3: fixes use of system malloc in u3i_chubs 2020-06-11 16:27:00 -07:00
Logan Allen
6a49b2f20f landscape-js: clear animation timer set by clock upon page navigation 2020-06-11 16:50:44 -04:00
Logan Allen
3ba4c14deb landscape-js: make clock and weather load data properly 2020-06-11 16:44:59 -04:00
~siprel
2f02a6d0e6 king: Command line flag to enable verbose logging. 2020-06-11 02:07:10 +00:00
~siprel
eb81f5ca14 Less verbose log output. 2020-06-11 02:02:53 +00:00
~siprel
849d25044a king: disable "bullshit scry tester" 2020-06-11 00:32:15 +00:00
~siprel
2b3fb7a568 king: fix behn tests. 2020-06-11 00:31:59 +00:00
~siprel
ba5bd09724 CLI option for serf exe + serf exe/flags live in PierConfig. 2020-06-10 23:56:48 +00:00
~siprel
f0f82d7e14 king: Handle %vega/%exit, %wack on boot, and stop logging secrets. 2020-06-10 22:00:37 +00:00
~siprel
dabe38be0d In non-daemon mode, initial serf slogs are user-visiable. 2020-06-10 21:17:55 +00:00
~siprel
c721baee7f king: serf stderr goes to terminals. 2020-06-10 21:03:46 +00:00