Commit Graph

1401 Commits

Author SHA1 Message Date
Philip Monk
55de9ab0a9
gall: add version to over-the-wire protocol
All over-the-wire requests should have version numbers.  This adds them
to gall's +ames-request.
2020-11-30 20:12:43 -08:00
Philip Monk
350521853b
clay: cleanup protocol versions
+riff-any is all clay requests except "backfill" requests.  Change to
`$%` from `$^`, which was used to distinguish originally non-versioned
requests.

+fill is backfill requests and had no version number, so we add one.

We do not have version numbers on responses since those are implied by
the request.  If someone requests at version `n` and you're at `n+1`,
you must respond in the format of `n`.

If someone requests at version `n+1` and you're at `n`, you crash;
though possibly you should be able to respond with message "I only know
up to `n`", in which case they may be able to re-request at `n`.  In
either case, the version of the response is dictated by the request.
2020-11-30 19:25:12 -08:00
fang
d7c740b32a
jael: add %vile scry endpoint for current keyfile 2020-11-30 22:35:22 +01:00
fang
122123c11a
ames: remove old state versions & conversions 2020-11-27 13:55:21 +01:00
fang
732addadd3
various: touch up improperly rewritten comments
Also patches /mar/snip to be more correct, but a &snip [~ ~] in dojo
still does not work.
2020-11-27 13:25:40 +01:00
fang
a539d986a7
various: move away from {type} syntax
In favor of [type] syntax.
Turns a bunch of ++ into +$ along the way.
2020-11-26 17:43:26 +01:00
fang
44fb0cc19d
various: move away from face/type syntax
In favor of face=type.
2020-11-26 17:38:00 +01:00
fang
a6e7af38d5
various: move away from $constant type syntax 2020-11-26 17:31:06 +01:00
Joe Bryan
f95e1f48c2 arvo: scry reform 2020-11-25 16:02:10 -08:00
Philip Monk
7259b2c121
gall: rename fading styles 2020-11-25 14:46:33 -08:00
fang
7956adedee
vanes: remove old load types and logic
Maintains state version numbers to avoid tripping up migration tools.
2020-11-25 16:24:16 +01:00
fang
27d6fc7597
zuse, clay, various: unflop the spur in beams
Unflops the spur in +en-beam, +de-beam, and everything that calls either
of those, or works with the consequences of their output.

This includes clay's interface for mounting and unmounting, which now
no longer expects the arguments to contain an old-style spur.
2020-11-24 15:44:25 +01:00
fang
fb97528fd4
arvo: unflop the spur in scry
No longer use reversed paths in sley-style peek handling.
2020-11-24 15:41:35 +01:00
Joe Bryan
7723ba2da8 Merge branch 'master' into release/next-vere
* master: (390 commits)
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  interface: links and publish comments both work
  ...
2020-11-20 13:16:53 -08:00
Joe Bryan
e1186950bc Merge branch 'na-release/next-vere' into na-release/runes
* na-release/next-vere: (943 commits)
  pill: solid
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  ...
2020-11-19 14:22:00 -08:00
Joe Bryan
4f43831095 Merge branch 'master' into na-release/next-vere
* master: (390 commits)
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  interface: links and publish comments both work
  ...
2020-11-19 14:02:13 -08:00
Philip Monk
17c16d5887
gall: refresh clay subscription on fade 2020-11-18 20:39:58 -08:00
Philip Monk
99fb6bb4e8
gall: add nonce to agent wires
Give each agent a nonce so that when you delete an agent, any
outstanding responses don't go to a later app of the same name.
2020-11-18 20:12:29 -08:00
Philip Monk
eadc63938c
Merge remote-tracking branch 'origin/release/next-dill' into release/next-sys 2020-11-17 21:54:50 -08:00
Philip Monk
e8e970d0ea
Merge pull request #3812 from urbit/ted/no-impostor-comets
no more impostor comets
2020-11-17 18:29:46 -08:00
Philip Monk
a7cc18072a
gall: add %doze-style fade 2020-11-17 12:53:05 -08:00
John Franklin
11f8ba23d7 hoon: bscl to bccl, etc 2020-11-17 01:05:17 -06:00
John Franklin
756c94aeb6 hoon: update glyph names (continued) 2020-11-14 23:08:52 -06:00
Joe Bryan
bac545e23c Merge branch 'release/next-vere' into na-release/next-vere
* release/next-vere: (1369 commits)
  nix: fixes `shellFor` nix-shell helper
  vere: print error and exit if stdin is not a tty
  build: silence service account activation output
  build: minor refactoring of haskell-nix overlays
  build: move darwin install_name_tool fixup from vere to king haskell
  u3: fixes incorrect double ref-counting in |ff jets
  u3: removes unused `Exit` variable
  u3: removes obsolete bail:need assertion
  u3: refactors fatal exception handling in u3m_bail()
  build: remove {sha256,md5} output for push-storage-object effects
  build: add log message when destination object already exists
  build: force google-cloud-sdk to use python3
  build: adding support for hercules ci effects
  build: remove push-to-storage for ivory, brass, and solid pills
  pill: rebuild solid pill with %lens included in lite boot apps
  arvo: run %lens when lite boot (-l) is specified
  build: expose configurable arguments when booting/testing fake ships
  build: ensure urbit tests are run with the -g argument
  vere: ensure debug symbols aren't stripped by default (by nix)
  build: remove from-scratch ropsten pill builds on ci
  ...
2020-11-11 18:03:01 -08:00
fang
3ca993df07
eyre: clog exclusively for %facts
Eyre's clog logic was a tad inconsistent about "only facts" vs "not poke-acks".
This makes it consistently say "only facts" when it comes to clog-related logic.
Yes, in theory this means %watch-acks and %kicks can build up endlessly, but
those should take up negligible space compared to %facts.

Should fix any oddball cases of crashes here that #3835 didn't already catch.
2020-11-10 22:06:28 +01:00
fang
9cd9448bcd
dill: remove ducts from %view and %flee interface
This was a little bit too crummy. Instead, we put in a placeholder of ~,
which should be forwards-compatible with atomic session identifiers,
where ~ identifies the default session.

Additionally touches up the herm wires/paths to stick to the above more
closely.
2020-11-10 19:33:11 +01:00
Philip Monk
1c8d229fb7
gall: fade initial commit 2020-11-09 23:42:04 -08:00
fang
485a15c913
dill: add scry endpoints for current line & cursor
This will let connecting clients get the rendering-relevant parts of the
current state of the session on demand.
2020-11-05 20:13:03 +01:00
fang
83d46dae88
dill: fall back to default session
This lets us support the "random userspace app sending dill belts".
Ultimately, we'll want to be able to specify a session identifier
alongside the belt, instead of strictly relying on the duct.
2020-11-04 20:12:01 +01:00
fang
eb824f1866
dill: allow watching output of arbitrary sessions
Adds a %view task, which opens a subscription on the output sent to the
specified session. %flee closes the same.
Whenever dill sends a blit to the session, any subscribers get the
output also.

The structures here will become more reasonable once we replace ducts
with proper dill session identifiers.
2020-11-04 20:11:42 +01:00
fang
18494f8a9d
dill: if styled prompt has no style, emit as plain
People using older runtimes might not support the %klr blit. It's not
uncommon for prompts without style to get passed in as %pom though, so
here we catch that case and turn it into a %pro, which gets rendered as
a traditional %lin.
2020-11-04 17:28:05 +01:00
fang
b96e071eb2
Merge branch 'release/next-sys' into release/next-dill 2020-11-04 17:25:35 +01:00
fang
c992e4ce9d
eyre: forego <atom> in favor of (scow %aura atom)
Pretty-printing is expensive, yet we do it whenever we construct the cookie
string, at least once (but usually twice) per authenticated request.

Here we call out the the specific to-tape functions we need, instead of relying
on the pretty-printer for converting... tapes to tapes, among other things.  
The primary gains come from the cookie-related instances, we update the others
mostly for good style.

For the "receive request and immediately send response" case, that is processed
synchronously within eyre (ie, client sends channel ack), speeds thing up by
roughly 55%.
2020-11-04 01:02:11 +01:00
fang
acf0f8d0e1
clay: %limb instead of %wing 2020-11-03 16:35:28 +01:00
fang
e7afc51018
clay: replace ream with nouns and !, zapcom
Motivation for the change is performance improvements on the un-`^~`d uses of
ream. Parsing turns out to be slow, making ream slow in turn. So we construct
the hoon ast manually instead.

!, is arguably better style than ream, since it doesn't require a ^~ for static
input, and lets syntax highlighting function properly.

For the investigated case, in +get-cast's +grow flow, improves performance by
over 80%.
2020-11-03 00:27:10 +01:00
fang
a35cad457a
Merge pull request #3830 from urbit/m/respect-forwarded-more
eyre: respect protocol from Forwarded header
2020-10-31 00:38:41 +01:00
fang
f8a2235d6e
Merge pull request #3835 from urbit/m/silent-subs
eyre: ignore facts directly after clog
2020-10-29 22:13:04 +01:00
fang
f480ac736f
Revert "eyre: ignore facts directly after clog" 2020-10-29 22:09:35 +01:00
fang
42229657ca
eyre: respect protocol from Forwarded header
If the Forwarded header specifies the original connection is secure,
update the flag to reflect that, regardless of whether the connection
directly to the urbit was made securely.
2020-10-29 14:24:24 +01:00
Ted Blackman
56db7cdcda ames/zuse: require >64-bit comet addresses 2020-10-27 17:28:07 -04:00
Ted Blackman
fcf9cfbcdb ames/zuse: require >64-bit comet addresses 2020-10-27 17:20:25 -04:00
Joe Bryan
aa200cf25a
Merge pull request #3786 from urbit/jb/ames-peek-forward-lane
ames: updates forward-lane scry-handling to prevent routing loops
2020-10-26 11:56:23 -07:00
fang
93475aa756
eyre: remove fact-without-subscription printf 2020-10-26 15:52:39 +01:00
fang
828f88b737
Merge branch 'master' into release/next-vere 2020-10-26 14:54:06 +01:00
fang
26049a3da0
eyre: ignore facts directly after clog
When an application would send multiple facts during a single event, it
was possible for the first fact to trigger a clog, removing the
subscription and sending a quit, but then the second fact still getting
sent out at normal.

Here, we drop any facts for subscriptions we don't have registered in
state, which should only happen in the described case.
2020-10-24 11:45:21 +02:00
fang
b92cfdb242
eyre: produce moves in correct order
Because storing in reverse order means producing in reverse reverse
order.

The tests didn't catch this because they, too, were infected with the
"reverse moves" meme.
2020-10-24 01:48:51 +02:00
Joe Bryan
da928bed10 ames: updates forward-lane scry-handling to match +send-blob 2020-10-22 17:37:46 -07:00
fang
5bebff3c38
eyre: kick subscriptions if fact conversion fails
This matches the behavior that gall uses for %watch-as subscriptions,
which eyre was using previously.
2020-10-19 19:17:58 +02:00
fang
1d4ee5a7b5
eyre: kick busy subscriptions if client not acking
In order to curb event queue growth when a client for whatever reason
isn't acking the events we send out, we implement a mechanism for
detecting such "clogging", and proactively kick subscriptions which are
adding too many events to the queue.

If the client hasn't sent an ack for ~s30, any subscription that accrues
more than 50 unacked %facts gets closed to prevent further buildup.

Upon reconnecting, the client will see %kick for the relevant
subscriptions and can open a new subscription as appropriate.

Includes a simple test for this behavior, and updates /app/dbug to be
able to display the newly tracked statistics.
2020-10-19 15:56:05 +02:00
fang
63b4fb3e19
eyre: simplify channel subscription storage
Instead of storing by "channel wire", store by request-id instead.
The channel wire was just the channel-id, request-id, and some cruft.
2020-10-19 00:48:18 +02:00
fang
7e5f29cfd2
eyre: convert facts to json manually
By doing a %watch instead of %watch-as %json for channel subscriptions,
we can hopefully make better use of noun deduplication, when storing
events in a channel's event queue until they get acked.
2020-10-18 16:31:35 +02:00
fang
8def1dbea8
eyre: store unacked events unserialized
Store the gall events from channel subscriptions as (vaseless) signs,
instead of serialized events. This should be smaller in memory, and
makes it more likely for noun deduplication to happen.

The cost is needing to reserialize upon channel reconnect, but this is
the less common case, and we don't expect it to be particularly slow.
2020-10-18 16:04:19 +02:00
Philip Monk
8cd72daf20
clay: speed up +find-merge-points
In certain cases +find-merge-points was very slow.  Specifically, the
`done` set was meant to avoid checking the same commit repeatedly, but
it didn't catch the case where a commit was added to the worklist that
was already in that worklist.

Secondly, the worklist was stored as a list but used as a queue, which
resulted in a lot of unnecessary welding.  We change it to a qeu.

Fixes #3735
2020-10-16 11:21:02 -07:00
Elliot Glaysher
9e2039ee2f arvo: Simplify the actual +code implemetation in jael. 2020-10-15 13:20:06 -04:00
Joe Bryan
45038ad7b1
Merge pull request #3689 from urbit/jb/clay-cancel-correct
clay: refactors +cancel-request, consistently accounting for TMI
2020-10-14 22:56:49 -07:00
Joe Bryan
1402f763f3 clay: refactors +cancel-request, consistently accounting for TMI 2020-10-09 10:34:18 -07:00
Fang
c444806c3d
eyre: explicitly permit proposed request in cors
Instead of always providing a wildcard for the allowed methods and
headers, now echoes back the method and headers that the client asked
for, if any.

Fixes #3676.
2020-10-09 14:07:05 +02:00
fang
a1e43e02a0
eyre: prevent binding in reserved namespaces
Disallows registering bindings (through %connect and %serve) that would capture
traffic on paths starting with /~ (Eyre's) or /~_~ (runtime's, as of cc389c5).

Note that we don't touch +insert-binding, which is used by Eyre internally to
set up bindings in its own namespace.
2020-10-06 16:50:49 +02:00
Joe Bryan
a208387a72
Merge pull request #3520 from urbit/ted/ames-scry-print
ames: print failed scrys
2020-10-02 15:30:27 -07:00
fang
be1f4a5f6b
eyre: add authentication checker scry endpoint
Lets you check whether a specific Cookie header value string constitutes an
authenticated request.

/ex/=//=/authenticated/cookie/(scot %t 'cookie-string')

Intended for use in the runtime, for example with #3557.
2020-10-01 19:55:16 +02:00
fang
a37b728b86
Merge pull request #3565 from tylershuster/eyre-response-code
eyre: send 'no content' status with no content
2020-10-01 16:06:44 +02:00
Fang
0866d99c73
eyre: minimal CORS support
Adds a cors-registry to Eyre's state that tracks allowed and rejected
origins for the purposes of CORS request handling.

For preflight requests, generates a response in-line.
For simple requests, adds CORS headers onto whatever response is given.

See also:
https://groups.google.com/a/urbit.org/g/dev/c/bb82dwEJGzM/m/q2JjNSx5BwAJ
2020-09-30 15:54:15 +02:00
Tyler Brown Cifu Shuster
8a9534e0ac eyre: send 'no content' headers with no content 2020-09-24 21:07:07 -07:00
pkova
5902ef9a53 eyre: remove superfluous connection-state check
This was originally introduced by me in #1814 to address #1811. Eyre was not
canceling heartbeat timers on all relevant events making it easy to end
up with an infinite behn loop. This check allowed ships that entered an infinite
loop to recover, as per my comment at
https://github.com/urbit/urbit/pull/1814#discussion_r333477482. Otherwise it's
not necessary.
2020-09-24 17:50:42 +03:00
Ted Blackman
f2be97d315 ames: print failed scrys 2020-09-18 16:06:13 -04:00
Joe Bryan
31fe240632 arvo: adds |meld, triggering memory unification 2020-09-09 22:50:43 -07:00
Joe Bryan
7f0b500778 arvo: adds |trim, triggering memory reclamation 2020-09-09 22:49:37 -07:00
Fang
ef4b56f8c7
dill: send styled text to runtime as-is
Depending on the additions to term.c made in 467d8d239 allows dill to
forget about ansi escape codes, and pass styled text nouns straight on
to vere.

Also removes a bit of logic from drum, which assumed things about the
rendering of escape codes to adjust cursor positioning. Now it simply
states the semantic cursor position, letting the runtime deal with the
potential influence of styling.
2020-09-09 19:09:29 +02:00
Philip Monk
f9665c0cbd
Merge pull request #3378 from urbit/philip/base-hash
clay: expose mergebase as base-hash
2020-09-08 20:11:05 -07:00
Philip Monk
c7480c9b07
clay: fix bug in %mate
If both sides changed a file in the same way, %mate used the version in
the mergebase, which is incorrect.  This changes it to use the version
in the destination desk.

An example of this issue:

    > +cat %/test/hoon
    /~zod/home/~2020.9.3..21.41.24..61ed/test/hoon
    first

    > |merge %scratch our %home
    >=
    merged with strategy %fine
    + /~zod/scratch/2/test/hoon

    > +cat /=scratch=/test
    /~zod/scratch/~2020.9.3..21.41.32..408c/test/hoon
    first

    > *%/test/hoon 'second'
    : /~zod/home/3/test/hoon

    > *%%%/scratch=/test/hoon 'second'
    : /~zod/scratch/3/test/hoon

    > |merge %scratch our %home
    >=
    %fine merge failed, trying %meet
    %meet merge failed, trying %mate
    merged with strategy %mate
    : /~zod/scratch/4/test/hoon

    > +cat /=scratch=/test
    /~zod/scratch/~2020.9.3..21.42.25..9e8b/test/hoon
    first
2020-09-03 14:34:30 -07:00
Philip Monk
67c5caada8
clay: add safe merge options
As described in gen/hood/merge/help.txt
2020-08-28 16:36:00 -07:00
Fang
2385670631
Merge pull request #3387 from urbit/m/eyre-wack-gall
eyre: prevent %eyre-no-channel errors
2020-08-27 22:26:19 +02:00
Fang
b06f8a0f9e
eyre: send %leave on %fact/ack for deleted channel
Ordinarily, eyre cleans up the relevant gall subscriptions whenever a
channel disappears. In yet unresolved erroneous behavior though, it may
leave a gall subscription open, despite wiping the channel from state.

Attempting to pass the response onto the deleted channel anyway results
in an %eyre-no-channel error later in the event. The volume of these
errors can degrade the user experience, as per #3196.

To resolve the annoyance (but not the underlying issue) we detect the
"subscription has no channel" case, and issue a %leave. Doing so
requires additional information in the wire, so we add that in,
refactoring the relevant wire building along the way.

Note that due to the wire requirements, this cannot resolve existing
cases. For that, we depend on bc929ba6d.
2020-08-27 14:16:46 +02:00
Fang
bc929ba6db
gall: forget eyre subscriptions once
As part of the solution to #3196, we need to clean up any gall
subscriptions that eyre didn't properly clean up.

Since detecting that is hard, we opt to just wipe _all_ eyre-originating
subscriptions from gall. We inspect the duct, which isn't good, but it's
only just this once.
2020-08-27 13:23:36 +02:00
Philip Monk
769b43d73a
clay: add comments and cleanup +find-merge-points 2020-08-26 18:32:20 -07:00
Philip Monk
9cd826f8f9
clay: make +find-merge-points faster
The main thing here is that we aggressively check whether we're in
ancestry of another mergebase candidate.  This means we don't have to do
a 2nd pass to eliminate redundant candidates.
2020-08-25 22:54:48 -07:00
Philip Monk
4468d79509
clay: expose mergebase as base-hash
Change the definition of base-hash to be the mergebase of %home with the
OTA source.  This means it's the most recent successfully-applied
update, which is usually the most important information.

Add sour-hash, which is the hash of the most recently *downloaded*
update, regardless of whether it applied successfuly (ie the old
base-hash).

Add a summary of the various hashes at the top of gen/trouble.
2020-08-25 20:25:39 -07:00
Philip Monk
f606d2e3d6
clay: cleaner no-op detection
Only no-op if the incoming commit's parent is the old head of the desk.
Also move the printing near the end so we can know exactly if anything
changed.
2020-08-25 18:15:06 -07:00
Philip Monk
d5596eb1a3
clay: if commit would be a no-op, don't commit it
fixes #3317
2020-08-25 16:24:36 -07:00
Caio Marcelo de Oliveira Filho
92cf9d7c33 Merge branch 'master' into code-reset 2020-08-17 14:55:07 -07:00
Caio Marcelo de Oliveira Filho
72b164ade2 eyre: Make %code-changed handling less chatty 2020-07-31 13:01:19 -07:00
Caio Marcelo de Oliveira Filho
df868e2c4f jael, eyre: Add a way to reset the web login code
Jael now stores a `step` that is combined with the original salt to
produce a new code.  A `%step` card is used to increment that value,
and effectively resetting the keys.  Because the first `step` is zero,
the first code is the same as before.

Eyre was changed to be notified with `%code-changed` so it can forget
old cookies, sessions and discard all the existing channels.

A new generator was added |code, that does both querying and
resetting the code

    |code             :: shows current code, step and help
    |code %reset      :: changes the code

The old +code generator still works correctly.
2020-07-31 11:35:48 -07:00
Philip Monk
48745e945a
Merge branch 'philip/ames-lane' (#3186)
* origin/philip/ames-lane:
  ames: fix lane discovery during some lane changes

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-07-30 13:33:29 -07:00
Philip Monk
3d1b7f2b35
clay: fix ph tests 2020-07-28 21:44:45 -07:00
Joe Bryan
e0c3ce08c8 Merge branch 'master' into na-release/next-vere
* master: (915 commits)
  vere: bumps urbit version to v0.10.8
  pill: updates all
  king: fix ames tests
  contact-store: restore /~/default contacts
  contact-hook: resubscribe on correct paths
  u3: note that u3a_rewrit* doesn't yet support south roads
  king: it was too clever of me to use stateTVar; compiler can't help
  king: fix comment about ames q behavior
  king: ames bounded q, now with logging and fifo
  serf: tweaks |pack and |mass printfs
  u3: moves u3a_compact to u3m_pack, refactors internals
  metadata: handle OTA correctly
  u3: refactors u3m_reclaim() into noun modules, works on any road
  release: urbit-os-v1.0.30
  group-store: remove scries from OTA logic
  release: urbit-os-v1.0.30
  MAINTAINERS: amend for post-fusion
  ames: add scry endpoint for forward lanes
  ames: improve scry interface
  chat, publish, contacts: fix OTA bugs
  ...
2020-07-27 11:58:53 -07:00
Philip Monk
495a6cf004
clay: remove debugging printfs 2020-07-24 22:05:49 -07:00
Philip Monk
1d0409c4c4
ames: fix lane discovery during some lane changes
We used to not accept new indirect lanes if we already have a direct
lane.  This means that if Bob, with a publicly-accessible lane, changes
lanes (eg by restarting the process and getting a new port or changing
ip addresses), tries to talk to Alice, who is behind a NAT, then Bob
will try directly but fail (because Alice is behind a NAT), so he will
route the message through her galaxy.  This is good -- the message gets
to Alice.  However, Alice had a direct route to Bob's old lane, so she
will try to ack on that lane, which fails.  She will not time out this
lane because she doesn't know that Bob isn't getting the acks (acks
don't have their own acks).

The solution is that if Alice receives an indirect lane for Bob when she
already has a direct lane, she shouldn't ignore it.  If the lane is the
same as what she has, she shouldn't change anything (in particular, she
shouldn't mark it as indirect).  But if it's a new lane, she should
discard her old direct lane and use the new indirect lane.
2020-07-24 20:41:48 -07:00
Philip Monk
51983e5480
clay: rewrite new protocol
Use an explicit state machine to carefully manage pending downloads.
2020-07-24 00:20:22 -07:00
Philip Monk
553a9db843
clay: refactor over-the-wire protocol
Don't send blobs initially; instead, wait for the recipient to ask for
any they need.  This should significantly reduce network and memory usage.
2020-07-23 00:12:33 -07:00
Matilde Park
0d68f3f901 Merge branch 'release/next-sys' 2020-07-22 14:31:17 -04:00
Fang
3955d1092b
ames: add scry endpoint for forward lanes
Finds the lane for that peer, or their galaxy. Intended for use in the
runtime, to enable stateless forwarding.
2020-07-22 16:33:34 +02:00
Fang
4ea98e569f
ames: 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.
2020-07-22 16:30:47 +02:00
Philip Monk
753ccf1b7e
Merge remote-tracking branch 'origin/ted/fix-huck' into release/next-sys 2020-07-21 17:08:01 -07:00
Fang
3eab480de7
Merge branch 'release/next-sys' into jb/m/behn-scry 2020-07-22 02:02:05 +02:00
Philip Monk
1169d6b443
clay: ignore extraneous /sys/lyv results 2020-07-21 15:42:46 -07:00
Philip Monk
f4c34c7598
release: urbit-os-v1.0.29 2020-07-21 12:59:12 -07:00
matildepark
2ea019850e
Merge pull request #3105 from urbit/mp/destub-ver
eyre: remove stubbed version text
2020-07-09 16:53:12 -04:00
Fang
fa32d711fa
eyre: remove channel.js
Userspace has, rightfully, taken over the task of serving a js client for
eyre's channel API.
2020-07-09 00:15:51 +02:00
Ted Blackman
11a8e911be zuse,behn,gall: fix %huck and |reset 2020-07-08 02:08:27 -04:00
Matilde Park
eef149d46d eyre: remove stubbed version text
In replicating a mockup, the residual 'version' for OS1 has overstayed
its welcome as a stub. This commit
removes it.
2020-07-07 23:41:37 -04:00
Philip Monk
935ffaaf23
eyre: give scry function to generators
In Ford Fusion, Clay builds generators but Dojo and Eyre run them.  Dojo
is already virtualized with a scry function, so +mule is fine, but Eyre
is not, so Eyre needs to use +mock and explicitly supply the scry
function.  This does that.  Fortunately, the produced result is simple
and easily clammable.

Fixes #3089
2020-07-02 23:30:17 -07:00
Philip Monk
37b9f854fd
eyre: give all args to generators
fixes #3082
2020-07-02 14:42:26 -07:00
Philip Monk
f3dede23d1
Merge pull request #3076 from urbit/philip/clay-print
kiln: Small fixes
2020-06-30 18:08:01 -07:00
Philip Monk
f4f1d0ab4b
clay: print conflicts 2020-06-30 15:24:42 -07:00
Philip Monk
51c5a74360
Merge remote-tracking branch 'origin/philip/jael-breach-restart' into release/next-sys 2020-06-29 19:25:13 -07:00
Philip Monk
e7e2c07d6f
clay: remove scaffolding 2020-06-29 14:30:33 -07:00
Philip Monk
40db8ea580
kiln: make otas continue even if they failed to apply 2020-06-29 13:25:10 -07:00
Ted Blackman
ede7105820 clay: flop syntax error trace 2020-06-29 11:01:23 -04:00
Philip Monk
42de999024
kiln: don't implicitly create syncs
Also silence some spurious errors.
2020-06-26 19:21:09 -07:00
Philip Monk
0301838f25
Merge remote-tracking branch 'origin/release/next-sys' into ford-fusion 2020-06-26 17:46:25 -07:00
Fang
523acf2eaf behn: optimize bounded timers scry 2020-06-26 15:17:20 -07:00
Fang
fe87d69ad1 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-26 15:17:12 -07:00
Philip Monk
77df80d603
gall: don't make large stack trace 2020-06-26 09:20:17 -07:00
Ted Blackman
ef138bb007 ames: use +cut in +encrypt 2020-06-25 22:54:37 -04:00
Philip Monk
51c6faaa31
ford,kiln: nicer errors 2020-06-24 21:24:58 -07:00
Philip Monk
3a662881be
clay: don't be evil 2020-06-24 21:24:27 -07:00
Philip Monk
fc42bf6039
clay: special-case +run-pact for %hoon 2020-06-24 20:26:04 -07:00
Ted Blackman
154f153801 gall: fix routes in +ap-yoke 2020-06-22 21:37:17 -04:00
Ted Blackman
652dc70304 clay,dojo: clean up stack traces 2020-06-20 03:46:22 -04:00
Ted Blackman
d1b4af89fe sys: s/mure/road 2020-06-19 00:44:17 -04:00
Philip Monk
7494bf57c6
clay: make reachable-takos linear instead of exponential
When merging, +reachable-takos is called roughly once per merge commit
in the ancestry of the new commit.  +reachable-takos was exponential in
the number of merge commits in the ancestry of the commit it's looking
at, due to mishandling of the accumulator.  This makes it linear.

Of course, linear x linear is still quadratic, which is not great.  I
doubt +reachable-takos can be made asymptotically better, but
+reduce-merge-points/+find-merge-points probably can.  50 merge commits
already gives about 14.000 iterations through the loop in
+reachable-takos.  Another option is to try to memoize this somehow, but
a simple ~+ is insufficient since `s` is usually different.

In local tests on macOS with a -L copy of ~wicdev-wisryt, this speeds up
OTAs significantly.  The majority of time was spent on this.
2020-06-18 18:56:31 -07:00
Fang
3ecb6f7154
Merge branch 'release/next-sys' into m/eyre-kill-channels 2020-06-18 22:34:22 +02:00
Fang
b2600f553c
Merge branch 'master' into m/eyre-kill-channels 2020-06-18 22:23:47 +02:00
Fang
8cb81370bb
Merge ford-fusion into m/eyre-scries 2020-06-18 20:23:06 +02:00
Ted Blackman
3914c0c0dd ota: works on my machine 2020-06-17 23:31:37 -04:00
Matilde Park
a65edb52cd Merge branch 'master' into feat/spa 2020-06-17 17:12:13 -04:00
Ted Blackman
1b1d7c9512 Merge remote-tracking branch 'origin/m/clay-fusion-markers' into ota-ford-fusion 2020-06-13 02:09:31 -04:00
Philip Monk
90f3c7d2a1
clay: build reef to prime reef-cache on inital OTA 2020-06-12 21:40:32 -07:00
Philip Monk
0447ac1ee1
arvo: add dummy ford and fix whey scry 2020-06-12 21:40:13 -07:00
Philip Monk
21c0f77321
arvo: add +mure for compiling hoon/arvo
Also use +mure in clay for building cores
2020-06-12 21:38:50 -07:00
Ted Blackman
8cf4e4bb38 gall: retry if agent fails first build 2020-06-13 00:16:09 -04:00
Fang
ed09418f7f
Merge pull request #3000 from urbit/m/eyre-login-redirect
eyre: don't lose redirect upon failing login
2020-06-12 21:32:57 +02:00
Fang
dcbdf28cd1
Merge branch 'master' into m/eyre-scries 2020-06-12 15:29:10 +02:00
Philip Monk
05f0e47f68
ames: fix larval +load for fusion 2020-06-11 22:55:08 -07:00
Philip Monk
a3e15cd64c
clay: send notifications on vega 2020-06-11 19:41:22 -07:00
Fang
4ab55893bc
eyre: slightly better error pages 2020-06-12 02:13:13 +02:00
Fang
3c168eddb4
gall: do mark conversion in +ap-peek
Attempt to convert the scry result to the mark that was asked for,
failing the scry (with ~) if the conversion fails.

Eyre's scry logic, then, can pass the requested mark directly into gall.
2020-06-12 02:11:08 +02:00
Fang
b870466977
eyre: only allow authenticated GET scry requests
Lacking any other permissioning mechanism, we must simply reject
unauthenticated HTTP-scry requests for now.
2020-06-12 00:57:25 +02:00
Ted Blackman
8c6fd1406f gall: clean up state adapter using +any-agent 2020-06-11 18:21:52 -04:00
Philip Monk
895542b93e
Merge remote-tracking branch 'origin/master' into release/next-sys 2020-06-11 13:14:59 -07:00
Ted Blackman
d87d246232 gall: +load runs, +molt still fails 2020-06-11 16:07:54 -04:00
Fang
d20877e414
eyre: support %gx scries
Exposes a scry endpoint. Any requests made to the /app/scry.mark url
under the endpoint will scry into %app using a %gx scry, at the
/scry/noun path, and attempt to convert the scry result into the %mark,
before converting that into the %mime mark, and sending that as an http
response.
2020-06-11 01:45:05 +02:00
Fang
f1fab71d59
eyre: find sub-path for binding
In addition to producing the action bound for a given request, now also
produces the subset of the request url that comes _after_ the path at
which the binding has been established.

Will allow some bindings to more easily dispatch off the relevant part
of the url.
2020-06-11 01:42:21 +02:00
Fang
a4785458d1
eyre: don't lose redirect upon failing login
If we failed the password check, the login page served to us would never
include any redirect details, even if they were there in the original request.

Now we simply (attempt to) parse out the redirect field a little earlier.
2020-06-10 20:37:12 +02:00
Ted Blackman
db21fad4dd gall: WIP load-lost 2020-06-10 04:16:25 -04:00
Ted Blackman
a2b1b16f60 Merge branch 'ford-fusion' into ota-ford-fusion 2020-06-09 21:34:16 -04:00
Fang
0a32bcda35
Merge branch 'release/next-sys' into ford-fusion 2020-06-09 20:10:28 +02:00
Fang
6e8822ffb5
clay: resurrect ':' for file-change notifications
Instead of printing '+' for both additions and modifications.
2020-06-08 23:24:23 +02:00
Philip Monk
6344a8441d
jael: always restart subscription to breached ship 2020-06-05 17:59:31 -07:00
Philip Monk
c68b0e817a
gall: properly handle empty outstanding ack queue
Fixes #2977
2020-06-05 17:05:22 -07:00
Fang
90ef268a32
Merge branch 'release/next-sys' into m/eyre-kill-channels 2020-06-05 22:25:18 +02:00
Liam Fitzgerald
976da56ced Merge branch 'origin/lf/get-eyre-redirect' into feat/spa 2020-06-05 11:11:37 +10:00
Philip Monk
80ead610ea
Merge remote-tracking branch 'origin/master' into release/next-sys 2020-06-04 17:52:42 -07:00
Liam Fitzgerald
3ff99b0d7f Merge branch 'origin/lf/get-eyre-redirect' into release/next-sys 2020-06-05 10:41:15 +10:00
Fang
b54dc7cd34
eyre, zuse: expire channels with their sessions
Associates channels with the authentication sessions that opened them,
and deletes the channel when its associated session expires.

Also updates the debug dashboard to display channel counts per session.
2020-06-05 00:22:39 +02:00
Fang
68491420d2
eyre: refactor %delete to reuse timeout logic
Turns +on-channel-timeout into +discard-channel, which cleans up the
entirety of the channel, based on its current state. This allows us to
simplify the %delete channel request into a simple function call.
2020-06-05 00:20:06 +02:00
Liam Fitzgerald
b553d57c29 eyre: 303 redirect on successful login
Changes the HTTP status code of the redirect that occurs upon a
successful login from 307 to 303. 307 preserves the method of the
original request, so the redirected request is a POST. With the new SPA,
this causes a 404 as app/file-server validates the method of the
request, something that did not happen in earlier versions of landscape.
303 instead changes the method to always produce a GET request.
2020-06-04 15:09:00 +10:00
Fang
a66cfc31da
eyre: fake duct for on-load logout binding
Empty duct is considered not good.
2020-06-03 14:29:13 +02:00
Fang
6e3284feac
eyre: use 303 to redirect to login post-logout
This ensures the client sends a GET request, which is more appropriate.
2020-06-03 14:28:30 +02:00
Ted Blackman
3834860410 clay: state adapter, still needs :goad 2020-06-03 03:00:45 -04:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-02 21:50:20 -07:00
Fang
4d93349402
eyre: provide logout endpoint
Set up, by default, on /~/logout.

Sending a POST request to this expires the current session and redirects
to the login page. If the "all" key is set in the request body, expires
all open sessions.
2020-06-03 01:40:32 +02:00
Philip Monk
818d2231f6
ames: remove jumbo packets 2020-06-02 14:13:28 -07:00
Philip Monk
84b8a67e47
clay: handle reefs for non-home desks
We build a reef for each desk but use the compiler from our kernel.  At
some point we should use the compiler from the desk, but then we need to
validate any results we get from it.
2020-06-01 20:52:20 -07:00
Fang
574b05a88a
Merge pull request #2959 from urbit/m/eyre-cookies
eyre: augmented cookie handling
2020-06-01 22:11:57 +02:00
Ted Blackman
b191636276 clay: WIP reef building 2020-06-01 12:56:21 -04:00
Fang
750ff6e5e1
eyre: respect "forwarded" header from localhost
For request transparency, HTTP proxies may set the Forwarded header to
specify who the original requester is.

For requests from localhost only, we make Eyre respect the Forwarded
header, and adjust the handled ip address accordingly.

Note that we do not support X-Forwarded or other non-standard variants.
The header remains in the request, so server applications can handle
them as desired.

Fixes #2723.
2020-05-31 17:45:22 +02:00
Fang
63c26151a3
eyre: extend session duration on-use
When sending a response to an authenticated request, update the session
to last for +session-timeout again, and send an updated cookie to match.

Assuming the user makes an actual HTTP request at least once a week,
this will make sure they don't get logged out automatically. Simply
keeping a channel open, unfortunately, doesn't count.
2020-05-30 02:29:20 +02:00
Fang
a51d93326a
eyre: clean up old +load code
Removes pre-breach state adapter logic and touches up code style.
2020-05-29 15:33:22 +02:00
Fang
00e3159287
eyre: clear expired sessions/cookies from state
Instead of setting a timer for every session, we set a single expiry
timer when the first session is created. On the subsequent wake event,
we clear all cookies that have expired at that time, then set a timer
for when the next session expires.

This approach gives us flexibility wrt sessions going forward, allowing
extending or early deleting of sessions without having to care about the
related timers.

Note that in +load, we clear all existing sessions. We would start the
expiry timer flow there, but can't. Forcing the user to login again
post-ota once isn't the end of the world.
2020-05-29 15:28:44 +02:00
Philip Monk
18e396cf53
release: urbit-os-v1.0.20
Previous urbit-os-v1.0.20 was not released
2020-05-28 18:43:20 -07:00
Philip Monk
d49e8adc08
Merge remote-tracking branch 'origin/philip/behn-fix' into release/hotfix
behn: fix +unset-timer
2020-05-28 18:37:39 -07:00
Philip Monk
3ab618e234
behn: fix +unset-timer
It was throwing away timers sometimes if you cancelled a timer at the
same date as other timers.
2020-05-28 17:09:25 -07:00
Philip Monk
0cfee46fa8
jael: send breach notifications in order
See #2952 for details
2020-05-28 15:24:19 -07:00
Philip Monk
1be5411c75
jael: don't notify breach on initial update to ship
See #2952 for details
2020-05-28 14:38:07 -07:00
Philip Monk
c20cd29932
jael: look for correct wire
We inspect the wire of our subscriber to see if we need to produce the
result as a %public-keys or a %boon.  This is bad -- we should proxy the
subscription to avoid this need, but this doesn't make that change yet.

%pubs is an old name that doesn't exist anymore (last existed around
September 2019).  The new version is /public-keys, but it's worked so
far because /public-keys has only one item in the path, so it missed the
conditional.  This commit makes the intent more clear.

The [%a @ @ *] could be just [%a @ *], but I leave it to reduce the
chance of breaking stuff.
2020-05-28 14:27:08 -07:00
Philip Monk
0642cc5861
ames: add |ames-wake
Somehow we ended up with flows which expected to awaken but did not wake
up.  This was likely caused by the error in r920j OTA, urbit-os-v1.0.18.

This adds a command which ensures that every flow has an active timer.
I expect this to be needed only once, but it's a pretty general tool, so
it's worth keeping.

I've included an unused @t parameter to more easily add simple debug
commands to ames without having to add a new task
2020-05-28 10:28:31 -07:00
Philip Monk
472ad18c90
behn: already deleted, don't need to do it again 2020-05-27 18:47:50 -07:00
Philip Monk
86fb78d933
Merge remote-tracking branch 'origin/ted/behn-same-date' into release/hotfix 2020-05-27 18:36:10 -07:00
Philip Monk
ff01a1ea04
ames: don't set new timer if we woke up too early
Otherwise if we end up having multple outstanding timers, they never
coalesce to a single timer.
2020-05-27 17:38:18 -07:00
Ted Blackman
8ed07dfc7e behn: fix bug with timers at same date 2020-05-27 02:59:07 -04:00
Fang
58e85fa661
Merge branch 'release/next-sys' into m/debug-dashboard 2020-05-23 01:00:45 +02:00
Fang
52ef23ccca
eyre, zuse: add scry interfaces for eyre state
Scries for getting out open connections, cookie sessions, and existing
channels.

Moves the involved types from eyre into zuse.
2020-05-22 23:55:17 +02:00
Philip Monk
a4a44f1e21
kiln: cleanup 2020-05-22 14:32:32 -07:00
Philip Monk
096149713a
drum: relink to chat-cli
The subscription changes in drum broke existing subscriptions.  This
worked alright (though loud) for dojo, but it left chat-cli "frozen"
unless you manually unlinked/relinked.  This does that automatically.

It also includes a refactoring of +on-load in drum, to avoid vain
repetition.
2020-05-22 00:17:56 -07:00
Philip Monk
4aff4d74e2
kiln: get updates into %home, remove %base
We need to get updates directly into %home in case the marks depend on
changes to hoon.hoon.  %base has no reason to exist.

Our ota strategy is now to merge from parent/kids to home, then
parent/kids to kids.
2020-05-21 23:45:17 -07:00
Philip Monk
4fcd9f23c0
Merge branch 'release/behn-fast' (#2915)
* release/behn-fast:
  zuse: add +ordered-map
  behn: switch to ordered-map
  chat: virtualize message-to-json conversion
2020-05-21 22:43:53 -07:00
Philip Monk
0e7b07e061
Merge branch 'release/link-dojo' (#2867)
* origin/release/link-dojo:
  chat-cli: allow sending • character
  chat-cli: always talk to local ship only
  chat-cli: single-target sole effects as needed
  chat-cli: don't allow excessively small cli widths
  chat-cli: pull in sole-sur namespace where relevant
  chat-cli: remove unused entropy from state
  chat-cli: print newlines correctly
  chat-cli: support multiple sole connections
  chat-cli: don't crash on %bad-text
  dojo: rename remote access generators
  gall: fix handling of empty path list
  dojo: remove unused %json poke
  dojo: add remote access controls
  drum: switch to per-ship /sole/drum duct

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-05-21 22:42:18 -07:00
Philip Monk
274215ec6b
zuse: add +ordered-map
At some point this should be more properly styled similar to +by, +in,
and +to, but for now this reduces duplication and makes the ordered map
available to everyone.
2020-05-21 22:28:16 -07:00
Fang
4c9d18e5c0
Merge branch 'release/next-sys' into m/debug-dashboard 2020-05-21 20:09:58 +02:00
Philip Monk
8c4c0f31fc
Merge pull request #2920 from urbit/ted/ames-mass-alien
ames: fix %alien |mass over-reporting
2020-05-21 01:40:30 -07:00
Philip Monk
a84b0db733
clay: fix clobbering changes if identical changes 2020-05-21 01:23:04 -07:00
Philip Monk
560e3375f5
clay: drip if foreign desk 2020-05-21 01:10:39 -07:00
Ted Blackman
a0eafa8aa3 zuse,ames: handle %trim task 2020-05-21 03:45:08 -04:00
Ted Blackman
0f7b213f38 ames: fix %alien |mass over-reporting 2020-05-21 03:19:20 -04:00
Joe Bryan
a7168478f3 gall: cleans up blocked-scry handling in %gall virtualization 2020-05-20 17:20:51 -07:00
Joe Bryan
6d3a5be259 Merge branch 'na-release/next-vere' into jt/minkleton
* na-release/next-vere: (1169 commits)
  jets: fix broken jets so ~marzod can boot.
  jets: hook up preexisting +repn jet.
  jets: add empty hashes
  jets: review comments
  Revert "Revert "u3: clear cached mugs on cell edit""
  jets: +welp and +zing
  jets: fix memory leak in +run:in
  jet: +find
  jets: +all:by and +any:by
  jets: +urn:by
  jet: +rep:by
  jet: +rep:in
  jets: +apt:in
  jets: +run:in
  jets: final cleanup
  jets: reenable +uni:by
  jets: jet +apt:by
  jets: +key:by and +wyt:by
  jets: +run:by
  jet: final cleanup
  ...
2020-05-20 14:05:17 -07:00
Ted Blackman
96264f7fa3 eyre: clarify common prints 2020-05-20 04:36:33 -04:00
Ted Blackman
5a1f227622 clay: remove beak from compiler path 2020-05-20 04:25:00 -04:00
Ted Blackman
917c55eaa3 gall: remove pupal queue, molt on any event 2020-05-20 03:30:29 -04:00
Ted Blackman
7e69e66280 ames/zuse: handle %trim event 2020-05-20 03:29:54 -04:00
Philip Monk
56c66be87a
behn: switch to ordered-map 2020-05-19 21:40:39 -07:00
Ted Blackman
044c22357d clay: virtualize +read-at-aeon:ze so failures don't kill event 2020-05-19 20:28:24 -04:00
Philip Monk
161cc7aa15
clay: put ship/desk in compiler path 2020-05-17 01:59:10 -07:00
Philip Monk
2583da4d31
gall: subscribe to hoon/arvo/zuse as well 2020-05-17 00:22:51 -07:00
Philip Monk
b7beb6a697
clay: make covariant in type of +hoon 2020-05-16 05:22:39 -07:00
Ted Blackman
88b834107c gall: pupal phase 2020-05-14 07:24:44 -04:00
Philip Monk
a874ab4355
zuse: remove +ford 2020-05-14 00:22:39 -07:00
Philip Monk
2c2e16df7a
language-server: convert to fusion 2020-05-13 23:30:52 -07:00
Philip Monk
fd26b2184e
kiln: convert to fusion 2020-05-13 20:13:53 -07:00
Philip Monk
af1a26aa5d
clay: abort mate on conflicts 2020-05-13 19:29:20 -07:00
Ted Blackman
2ce063f409 ford: delete, update /lib/pill 2020-05-13 21:10:35 -04:00
Ted Blackman
4dde2081f1 Merge branch 'ted/leap-arvo' into ford-fusion 2020-05-13 19:44:44 -04:00
Philip Monk
9b434af44e clay: only reload vanes that changed 2020-05-13 18:27:14 -04:00
Ted Blackman
778f6e9d05 /sys: make hoon optional in %lyra 2020-05-13 18:27:14 -04:00
Philip Monk
6da1424f8a
clay: remove last turbo references 2020-05-12 23:36:55 -07:00
Philip Monk
be77fa39db
clay: convert foreign-update to fusion 2020-05-12 22:53:23 -07:00
Philip Monk
ee13aa73d4
clay: move foreign-request to fusion 2020-05-12 20:22:25 -07:00
Philip Monk
8536c6b1ca
clay: remove move of +util 2020-05-12 03:03:07 -07:00
Philip Monk
6e10a7439a
clay: remove fusion mount and queuing infrastructure 2020-05-12 02:09:41 -07:00
Philip Monk
4e1bac8946
clay: convert |mount to fusion 2020-05-12 01:27:19 -07:00
Philip Monk
5474b2fab6
clay: remove turbo merge 2020-05-12 00:43:45 -07:00
Philip Monk
aacd6f80d8
clay: move merge back into clay 2020-05-12 00:01:46 -07:00
Philip Monk
e75ab631a4
clay: remove turbo commit 2020-05-11 19:33:56 -07:00
Philip Monk
7d5e102dfe
clay: change %info to use ford fusion 2020-05-11 19:26:22 -07:00
Philip Monk
9a9d91214f
clay: port mate/meld to ford fusion 2020-05-11 18:23:44 -07:00
Fang
be087a8c92
Merge branch 'release/next-sys' of https://github.com/urbit/urbit into m/debug-dashboard 2020-05-11 20:39:00 +02:00
Fang
e33a8952c1
Merge pull request #2840 from urbit/m/gall-just-not-unique
gall: smaller %watch-not-unique print
2020-05-11 19:44:30 +02:00
Philip Monk
170f791d1d
Merge branch 'philip/ames-dedup' (#2852)
* origin/philip/ames-dedup:
  clay: don't send peers to message pump
  ames: only dedupe long messages
  ames: don't split messages until ready to send
  ames: dedup new messages and fragments
2020-05-08 13:40:09 -07:00
Ted Blackman
b6dcb65061 clay: rebuild desk on zuse change 2020-05-08 06:03:29 -04:00
Ted Blackman
b32ca5d222 /sys: kernel upgrades seem to work 2020-05-08 02:18:24 -04:00
Ted Blackman
9588542ed4 eyre: fix tests 2020-05-08 01:29:25 -04:00
Philip Monk
54e550d229
gall: clear outstanding ack queue on-load
This will fix the issue described in #2867 for ducts that have already
triggered the bug.  This will also send spurious acks for any messages
that are outstanding at the time of the upgrade, but I don't believe
this will cause a serious problem.
2020-05-07 21:31:50 -07:00
Philip Monk
35ca2be344
gall: clear outstanding ack queue to breaching ships
fixes #2867
2020-05-07 21:17:42 -07:00
Ted Blackman
ea2386b36c clay: stop the %drip 2020-05-07 23:58:03 -04:00
lukechampine
8cbb8f142e gall: fix handling of empty path list 2020-05-07 22:46:51 -04:00
Fang
664275c9f1
eyre: expose bindings through scry
Allows you to scry out all bound endpoints at /=bindings=.

Moves an internal type into zuse for easier external use.
2020-05-08 01:39:56 +02:00
Fang
61a5e7a45e
behn: expose timers through scry
Instead of giving the tank of the timers, give the list of timers
itself.

Updates +timers to account for this.
2020-05-08 01:38:29 +02:00
Fang
14831f4864
ames: expose state through scries
Support /=peers= and /=peer=/~ship scries for getting at all peers and
a specific peer's connection state, respectively.

Moves some internal types into zuse for easier external use.
2020-05-08 01:37:07 +02:00
Ted Blackman
a064afbd89 /sys: |mass works again 2020-05-07 04:51:08 -04:00
Ted Blackman
339e4e34ce clay: fix %mime->%html mark conversion 2020-05-06 01:09:35 -04:00
Philip Monk
4cc3fea534
clay: don't send peers to message pump 2020-05-05 16:39:50 -07:00
Ted Blackman
3ad411646b clay: fix %sole-effect->%json conversion 2020-05-05 18:24:16 -04:00
Ted Blackman
58d3820e41 clay: track /{mar,lib,sur} dependencies properly 2020-05-05 02:31:35 -04:00
Ted Blackman
8fc787b0ca eyre: use ford-fusion; compiles, untested 2020-05-05 01:28:37 -04:00
Philip Monk
490b615b6a
ames: only dedupe long messages 2020-05-04 21:39:59 -07:00
Fang
ab9ecdd7fe
gall: smaller %watch-not-unique print
Instead of printing all outgoing subscriptions for the app, only print the
subscription whose wire we're trying to re-use.
2020-05-03 23:21:30 +02:00
Philip Monk
081c8a864d
ames: don't split messages until ready to send
Trying to reduce the size of ames queues.  This deduplicates incoming
message-blobs by comparing with existing message-blobs in other queues.

It also stops splitting into fragments in +feed-packets.  Instead, it
splits into fragments at the last moment, in +encrypt.  This means we
don't have to store a large number of packets in our home road.
2020-05-02 03:35:44 -07:00
Philip Monk
c50c34d8be
ames: dedup new messages and fragments 2020-05-01 22:55:14 -07:00
Philip Monk
1d5dfe394f
gall: port mark operations to fusion
Gall no longer refers to Ford Turbo
2020-04-30 23:19:50 -07:00
Ted Blackman
c08161af7d gall: scry and warp to /nowhere 2020-04-30 04:15:28 -04:00
Ted Blackman
7645b32f72 Revert "gall: WIP use ford fusion for mark casting"
This reverts commit 22aa98e717.
2020-04-30 02:00:57 -04:00
Philip Monk
65766a73e2
clay: port -merge to fusion 2020-04-29 17:38:24 -07:00
Ted Blackman
6120eeecc0 Merge remote-tracking branch 'origin/ford-fusion' into ford-fusion 2020-04-29 18:12:54 -04:00
Philip Monk
1ae66bd098
clay: clean up sanity checks 2020-04-29 14:50:30 -07:00
Ted Blackman
73352faa23 Merge remote-tracking branch 'origin/philip/ford-fusion' into ford-fusion 2020-04-29 17:46:33 -04:00
Philip Monk
06c0d55a1e
clay: working sanity checks for ankh 2020-04-28 22:34:48 -07:00
Philip Monk
c5d7473cf7
clay: recurse properly 2020-04-28 20:33:12 -07:00
Philip Monk
7133e50ef3
clay: make first commits use fusion 2020-04-28 18:14:18 -07:00
Ted Blackman
22aa98e717 gall: WIP use ford fusion for mark casting 2020-04-28 10:05:58 -04:00
Ted Blackman
87818b8795 clay: report cache sizes in |mass 2020-04-28 06:37:43 -04:00
Ted Blackman
004d0624da clay: remove stray print 2020-04-28 06:23:53 -04:00
Ted Blackman
0a906dc297 clay: use %mime cache on %into 2020-04-28 05:56:28 -04:00
Ted Blackman
3eac215a1c clay: fix %mime->%hoon bootstrapping 2020-04-28 00:52:07 -04:00
Ted Blackman
80541b39aa gall: live update agents 2020-04-27 23:03:17 -04:00
Ted Blackman
48caee7579 clay: fix +build-fit 2020-04-27 22:53:50 -04:00
Philip Monk
dca81a2ee2
clay: prepare for kernel updates 2020-04-24 17:44:29 -07:00
Philip Monk
d3b5fba864
clay: prepare for switching first commit to fusion
Can't be done right now because get-fit doesn't look at the incoming
changes.
2020-04-24 12:17:22 -07:00
Philip Monk
42bab4ecfb
clay: move -commit back into clay 2020-04-23 17:16:42 -07:00
Philip Monk
fa0e019ddf
clay: change %park interface to not take caches
Now a full commit is synchronous.  -commit will be assimilated back into
clay.
2020-04-23 13:54:57 -07:00
Ted Blackman
d7215321d3 gall: fix scry bug 2020-04-22 06:49:23 -04:00
Ted Blackman
627bb565c2 boots off gall using fusion to build apps; some app errors on boot, but usable 2020-04-22 05:27:36 -04:00
Ted Blackman
3beb6ee65b WIP gall: partial fusion conversion; compiles 2020-04-22 01:37:12 -04:00
Ted Blackman
9b0cb85a02 gall: clean up API, remove empty caches from state. 2020-04-21 18:50:47 -04:00
Ted Blackman
8b4ad9bfc9 :spider2 works with threads in subfolders 2020-04-21 00:22:54 -04:00
Ted Blackman
acaf5a12cf -test: all tests pass; fixed clay +get-fit 2020-04-20 02:41:20 -04:00
Ted Blackman
1f91676c97 ford-fusion: stateful %warp reads compile 2020-04-19 04:58:12 -04:00
Ted Blackman
0e4fb5a4f4 -test /sys/vane/{ames,clay} 2020-04-18 19:53:45 -04:00
Ted Blackman
8d3a497bb9 ford-fusion: add ~| with .changes and .deletes 2020-04-18 04:18:13 -04:00
Ted Blackman
8f60c0e036 ford-fusion: update ankh before mime conversion 2020-04-18 01:36:59 -04:00
Ted Blackman
f36dc49ede -build-file, -build-mark, -build-cast 2020-04-17 22:50:03 -04:00
Philip Monk
3d04695ca7
clay: use ford fusion for ankh and mime cache 2020-04-17 18:04:51 -07:00
Ted Blackman
1b27582e3a ford-fusion: minor cleanup to +get-value 2020-04-17 02:23:19 -04:00
Ted Blackman
fdcc80b1e2 ford-fusion: use .baked.nub; fixes /mar/hoon dep cycle 2020-04-17 02:14:41 -04:00
Philip Monk
92f8fad85d
clay: write checkout-ankh and checkout-mime 2020-04-16 20:18:02 -07:00
Philip Monk
a479618a23
clay: add +get-changes 2020-04-16 14:05:43 -07:00
Ted Blackman
af24318955 ford-fusion: check for cycles 2020-04-16 16:30:55 -04:00
Ted Blackman
3592b7e5bc ford-fusion: minor +promote-ford cleanup 2020-04-16 16:09:02 -04:00
Ted Blackman
46ee902eaa ford-fusion: hook up %cc scry to +get-cast 2020-04-16 15:00:03 -04:00
Ted Blackman
ea23be3973 ford-fusion: report syntax errors 2020-04-16 09:55:48 -04:00
Ted Blackman
95f27d4a7b ford-fusion: +run-pact compiles 2020-04-16 09:38:34 -04:00
Ted Blackman
6e12f71789 ford-fusion: +validate-path, +cast-path 2020-04-16 09:28:14 -04:00
Ted Blackman
5854162e74 ford-fusion: parse /? 2020-04-16 08:56:06 -04:00
Ted Blackman
35c39bf076 ford-fusion: +get-cast compiles, initial tests pass 2020-04-16 08:45:48 -04:00
Philip Monk
6441116e9f
clay: get-fit fix from ted 2020-04-15 19:55:41 -07:00
Philip Monk
311cf5329c
clay: integrate ford vase and mark without cache 2020-04-15 19:10:22 -07:00
Philip Monk
310f5d19ef
clay: add stubs for %a, %b, and %c cares 2020-04-15 17:47:45 -07:00
Philip Monk
d04191320a
clay: add +promote-ford 2020-04-15 16:24:48 -07:00
ixv
2c56937f0d
Merge pull request #2701 from lukechampine/syntax-error-src
ford: print source line on syntax error
2020-04-13 19:03:05 -07:00
Philip Monk
17fa15336f
clay: fix %init for -merge 2020-04-10 20:42:56 -07:00
Isaac Visintainer
1fdf8a9789 Merge branch 'gall-hack-new-deal' 2020-04-09 15:39:49 -07:00
Logan Allen
a5d6403f39 gall: updated to soft properly 2020-04-09 14:53:12 -04:00
Logan Allen
7edc183ded gall: soft cast chat-action, and remove the chat-update hack 2020-04-09 02:09:51 -04:00
lukechampine
cb4cae01c8 ford: print source line on syntax error 2020-04-08 21:11:15 -04:00
Logan Allen
4d8e0cf26b gall: added hack to reduce processing time for chat messages by 30% 2020-04-06 22:58:06 -04:00
Michael Hartl
3e203634e3 Fix spelling of "existent" 2020-04-06 08:18:22 -07:00
Isaac Visintainer
2ad8264c52 Merge branch 'philip/gall-clear' 2020-04-02 15:32:43 -07:00
Philip Monk
5a4786169d
clay: don't underflow when patch produces empty file
Fixes #2602

I haven't been able to reproduce this bug, but I can see how it could
happen in theory.  This should resolve the issue.
2020-03-31 11:37:58 -07:00
Luke Champine
b3d78b5d71
eyre: Remove leading sig from password placeholder 2020-03-30 13:32:21 -04:00
Philip Monk
d70431a6b0
clay: add %cs for hash of yaki data 2020-03-27 20:45:32 -07:00
Philip Monk
3f2a7b08a5
clay: add -merge except meet/mate/meld
-merge will replace |merge so that.  Once they reach feature parity and
%info is rewritten to forward to -commit, we can rip out about half of
clay.hoon
2020-03-25 20:54:19 -07:00
Philip Monk
4d013573e1
clay: print changes on commit 2020-03-24 17:24:19 -07:00
Philip Monk
51ff5b8d67
clay: connect |commit to %park
Can remove the old commit flow once existing usage of %info is ported to
%park.
2020-03-24 16:48:18 -07:00
Philip Monk
1599937c81
clay: add option to skip queue
Makes it so that |cancel %force skips the next thing in the queue if
you're not in the middle of something.  If you are in the middle of
something, it skips the thing you're in the middle of (just like naked
|cancel).

This should resolve issues where |cancel doesn't drain the queue.
2020-03-23 15:53:18 -07:00
Philip Monk
531630e93a
clay: add %park task and -commit
%park is a plumbing commit task.  It guarantees completion in a single
event, so you have to do much of the work before calling it.  -commit
is an example of how to do this.
2020-03-20 21:30:56 -07:00
Philip Monk
5972dc50a3
gall: remove printf and add pill 2020-03-19 11:34:19 -07:00
Philip Monk
cf9ef764f1
gall: remove pending messages from breached ship
When a ship breaches, we remove all messages that have yet to be
delivered to an app (eg if it's not yet started).  We also add
|gall-sear to do this manually, but this shouldn't be needed in normal
operation.

Finally, to unblock ~zod and ~bus on mainnet, we sear one particular
ship automatically on loading hood.  It cannot be done manually because
no userpace changes can be made until it's unblocked.
2020-03-18 21:05:06 -07:00
Philip Monk
3b9f7249d3
ames: print num-fragments in packet verbage
Gives you a poor man's progress bar.  For example, to determine how much
of an OTA you've downloaded from your sponsor, run:

|ames-sift (sein:title our now our)
|ames-verb %rcv

and then to turn it off:

|ames-verb
2020-03-17 14:03:48 -07:00
Philip Monk
2ea8800710
behn: drop drip failures
Restores previous behavior.  This is wrong, but without it we fail when
vanes (specifically Ford) crash on goof.
2020-03-12 09:39:27 -07:00
Logan Allen
bd947421ca eyre: upon login redirect parameter being empty, redirect to / 2020-03-09 17:16:43 -07:00
Joe Bryan
67cef638c4 Merge branch 'master' into arvo-errors
* master: (484 commits)
  king: Slight CLI cleanup and fix test build.
  king: Add command-line flags to configure HTTP and HTTPS ports.
  groups: reduce metadata updates, removal
  chat: reducer handles metadata removal
  groups: exclude group metadata from channels list
  groups: set and surface group name metadata
  groups: remove dummy 'share' flow, 'default' group
  contacts: rename, migrate '~contacts' to '~groups'
  sh/release: rename vere release tarballs
  vere: patch version bump (v0.10.3 -> v0.10.4.rc1) [ci skip]
  pills: updated brass and solid
  chat: pull room contacts from associated group
  chat: spell 'permanent' correctly
  eyre: remove padding from 'access' input
  chat: only delete metadata for a chat if you created it
  chat: settings inputs add borders on focus
  vere: disables gc on |mass in the daemon process
  chat: remove console.log from metadataAction
  chat: style fixes during review, use metadata-hook
  chat: edit description, color settings
  ...
2020-03-05 11:56:49 -08:00
Jared Tobin
a1d489d977
Merge branch 'os1-rc' (#2365)
* origin/os1-rc: (439 commits)
  pills: updated brass and solid
  chat: pull room contacts from associated group
  chat: spell 'permanent' correctly
  eyre: remove padding from 'access' input
  chat: only delete metadata for a chat if you created it
  chat: settings inputs add borders on focus
  chat: remove console.log from metadataAction
  chat: style fixes during review, use metadata-hook
  chat: edit description, color settings
  chat: add update-metadata to metadata reducer
  chat: revise api.js to match data structures
  metadata-json: add json to action parsers
  chat: construct settings page for metadata
  chat: correct bottom border on join links
  chat: copy shortcodes
  chat: linkify unmanaged chats
  metadata-hook: support group members other than host creating shared resources
  contacts: add bg-gray0 to root page
  chat + contact views: updated for style and to assert that group-path must be equal to app-path if there are ships in the members set
  contacts: changed color + copy of "add to group" button
  ...
2020-03-04 15:48:05 +04:00
Matilde Park
dd402e315f eyre: remove padding from 'access' input 2020-03-03 19:52:04 -05:00
Joe Bryan
6322639436 vane: jet-hints all vanes for profiling 2020-03-03 14:17:42 -08:00
Joe Bryan
18f199b2c3 ford: restores pit-shortcircuit, but only during boot 2020-03-02 12:20:21 -08:00
Joe Bryan
ba753e3d36 arvo: replace $milt with $meta 2020-02-26 20:25:24 -08:00
Joe Bryan
796478ada7 arvo: removes %gave, generalizes %hurl 2020-02-26 16:56:17 -08:00
Joe Bryan
53d9798cda vane: prints error notifications where not handled 2020-02-26 16:56:17 -08:00
Joe Bryan
e59d56aa7a behn: forward %drip error notifications, refactor %crud handling 2020-02-26 16:56:17 -08:00
Joe Bryan
93eaff7401 ames: downcast %hear error notification to %hole 2020-02-26 16:56:17 -08:00
Joe Bryan
4cae84d9ac vane: downcast all error notifications to %crud 2020-02-26 16:56:17 -08:00
Joe Bryan
fa71cc2ae4 dill: "downcast" +call error notification to %crud 2020-02-26 16:56:17 -08:00
Joe Bryan
df970ed417 arvo: passes errors to all vanes 2020-02-26 16:56:17 -08:00
Matilde Park
12b2d4756e eyre: add dark mode styling to sign-in 2020-02-21 21:56:25 -05:00
Isaac Visintainer
09b381e8c6 ford: add state version and perform flush on migration between versions 2020-02-21 14:10:16 -08:00
Isaac Visintainer
f7aa1298bb ford: explain +load change in comment 2020-02-21 13:29:59 -08:00
Isaac Visintainer
19e70368e8 ford: flush state on upgrade 2020-02-21 11:12:33 -08:00
Ted Blackman
d917eebe56 ford: remove pit short-circuit 2020-02-20 16:38:21 -05:00
Paul Driver
d6b28db521
hoon, vere: copy mino, etc. back to old names 2020-02-20 18:32:29 +04:00
Paul Driver
4d71c1150c
hoon, vere: move all mock and mook callers to moku/moko. 2020-02-20 18:21:35 +04:00
Isaac Visintainer
00a9eb9eab Merge branch 'master' into os1-rc 2020-02-19 16:04:21 -08:00
Philip Monk
4fda5e8e38
gall: give both acks in case of unexpected ack
It's hard to say what's the safest thing to do when we get an ack we
weren't expecting due to losing outstanding.agents.state in +load
3-to-4, so this gives both a watch-ack and a poke-ack.  This seems most
likely to succeed.
2020-02-13 17:48:33 -08:00
Philip Monk
e082845e0d
gall: make 2140e07 ota-able
Does not change state type, but clears outstanding.agents.state since
it's full of garbage values.  This introduces a possibility that we may
have been in the middle of something, so we handle that in a reasonably
sane way.
2020-02-13 17:20:27 -08:00
Philip Monk
2140e07a99
gall: properly track remote acknowledgments
outstanding.agents.state is a queue of what sort of message we sent to a
foreign app.  We use it so that when the acknowledgment comes back we
know whether to treat it as a watch-ack, poke-ack, or neither.  We used
to put this info in the wire, but this gave us a different ames flow,
which meant %leave and %watch didn't get associated (causing #2079).

The error was that when when retrieving the item from the queue, we put
the new 1-item-shorter queue back in outstanding.agents.state at a
different wire than it came from, so the queues never actually got
shorter, and acknowledgments of the wrong sort were commonly produced.
This caused problems mainly in situations where we poke and peer on the
same wire, and possibly when a subscription was cancelled.

Possibly related to #2206 and #2176.  I would expect this bug to cause
those issues, but I haven't verified the converse.  Also possibly
related to #2153 and #2079.
2020-02-13 15:12:07 -08:00
Matilde Park
7a530d1001 eyre: amend "purchase an id" link to urbit.org 2020-02-11 15:27:08 -05:00
Matilde Park
662661e316 eyre: add new os1 login screen 2020-02-10 23:24:16 -05:00
Philip Monk
41fd367bff
ames: make routing simpler 2020-02-10 17:49:18 -08:00
Fang
717e2310be
eyre: remove potentially noisy printf
It's perfectly sane for gall (apps) to send quits to subscriptions
incoming from the web.
2020-02-05 18:20:43 +01:00
Ted Blackman
7dc499d438
ford: ignore spurious clay responses
Due to asynchronicity, Ford can receive responses from Clay to requests
that it has already attempted to cancel. This removes some overzealous
assertions that this wouldn't happen.
2020-01-29 15:11:36 +04:00
Ted Blackman
0d69031c72
ford: add +got-build helper
Replaced manual calls to (~(got by builds.state) build) with a new
+got-build helper function that prints a helpful error message on
failure.
2020-01-29 14:00:25 +04:00
Jared Tobin
a3e682f596
Merge branch 'ford-orphans' (#2192)
* ford-orphans:
  ford: dequeue orphans

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-28 17:39:36 +04:00
Ted Blackman
155ab60609
ford: dequeue orphans
@ixv recently uncovered a bug (#2180) in Ford that caused certain
rebuilds to crash. @Fang- and I believe this change should fix the bug,
and we have confirmed that the reproduction that used to fail about two
thirds of the time now has not failed at all in the ten or so times
we've run it since then. @Fang- is still running more tests to confirm
the fix with more certainty.

It turned out the cause was that (depending on the rebuild order, which
is unspecified and should not need to be specified), Ford could enqueue
a provisional sub-build to be run but then, later in the same +gather
call, discover that the sub-build was in fact an orphan and delete it
from builds.state accordingly. Then when Ford tried to run the
sub-build, it would have already been deleted from the state, so Ford
would crash when trying to process its result in +reduce.

The fix was to make sure that when we discover a provisional sub-build
is orphaned, dequeue it from candidate-builds and next-builds to make
sure we don't try to run it. I'm about 95% sure this fix completely
solves the bug.
2020-01-28 17:29:24 +04:00
Ted Blackman
0bee77ce8e
/sys: use +harden on vane tasks
Uses Zuse's previously unused +harden helper function to streamline
+task unwrapping in vanes.

(Arguably, in landlocked vanes like Ford, we should crash if we get a
%soft task, since no events should be coming in directly from the
outside.)
2020-01-27 09:53:53 +04:00
Fang
f4ed3fe980
clay: document %t care 2020-01-22 21:23:14 -08:00
Jared Tobin
c182672b54
Merge branch 'ames-goof' (#2166)
* origin/ames-goof:
  ames: adjust route update logic

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-22 13:14:39 +04:00
Ted Blackman
11c92e691d
ames: adjust route update logic
There was a typo in the routing logic that was comparing equality
against a value where it should have been doing a pattern match. The
value compared against contained the literal * gate, which would never
match route.peer-state, so this condition was always true, meaning the
fix that had added this extra condition (5406f06) did not actually
change the behavior from what it been previously.
2020-01-22 12:50:18 +04:00
Philip Monk
d578159791
ames: fix assertion bug and add debug info
If we receive the naxplanation before the nack, the assertion in the gte
direction fails.  The intent of the assertion is to make sure top of the
live queue never falls behind current.state, so it was simply in the
wrong direction.
2020-01-14 08:34:12 -08:00
Jared Tobin
01afc2a143
Merge branch 'm/gall-gift-paths' (#2134)
* origin/m/gall-gift-paths:
  gall: (list path) in %fact and %kick

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-07 04:17:32 +08:00
Jared Tobin
cd9624e097
Merge branch 'm/whitespace' (#2149)
* origin/m/whitespace:
  various: remove trailing whitespace
  ci: reject trailing whitespace

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 10:55:13 +08:00
Jared Tobin
f94ba8ce9c
Merge branch 'm/xmas' (#2143)
* origin/m/xmas:
  xmas: remove, obsoleted by alef

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 10:53:15 +08:00
Jared Tobin
6f7aae3574
Merge branch 'ames-clean' (#2127)
* origin/ames-clean:
  ames: update comment docs

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 07:25:22 +08:00
Fang
fcf1846b6f
various: remove trailing whitespace 2020-01-03 22:06:42 +01:00
Fang
e005cefe77
xmas: remove, obsoleted by alef 2019-12-27 02:19:36 +01:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Ted Blackman
895f1c069d ames: update comment docs 2019-12-21 01:56:51 -05:00
Jared Tobin
103e375417
Merge branch 'ford-safe' (#2117)
* origin/ford-safe:
  ford: clear build results on +load

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-20 13:22:23 -03:30
Fang
3808f02287
clay: implement %u care
Previously, it would always produce ~, regardless of the path asked
about.

Now, it produces a loobean, based on whether or not a file exists at the
specified path.
2019-12-18 21:02:38 +01:00
Jared Tobin
9b0582323c
Merge branch 'philip/eth-watcher' (#2113)
* philip/eth-watcher:
  ph: fix tests by spamming blocks regularly
  gaze: reflect changes to eth-watcher
  ames: better printfs
  jael: only advance lifes
  jael: stop ship-to-ship
  jael: add "eager" mode to avoid hitting nodes as much
  jael: properly store ship sources
  gen: add +azimuth-sources
  jael: re-enable ship-to-ship communication
  eth-watcher: actually stop pending thread when restarting

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-18 12:13:27 -03:30
Philip Monk
0e876b3cd4
ames: better printfs 2019-12-18 11:31:17 -03:30
Philip Monk
16d98e5eda
jael: stop ship-to-ship 2019-12-18 11:19:41 -03:30
Philip Monk
18c3e7253b
jael: add "eager" mode to avoid hitting nodes as much 2019-12-18 10:58:00 -03:30
Philip Monk
15bd35301e
jael: properly store ship sources 2019-12-18 10:42:57 -03:30
Ted Blackman
9fb37543ec ford: clear build results on +load 2019-12-18 00:25:27 -05:00
Philip Monk
7ca3d9624e
ames: handle misordered crashing boons
Two bugs fixed here: first, if the %done reentrancy triggered another
%boon, that wasn't getting translated to a %lost, even though it could
have been the reason the event crashed in the first place.

Second, the %done reentrancy needs to happen after we emit our move, so
that we don't invert the order of the %boon's we produce.
2019-12-17 20:58:30 -08:00
Philip Monk
e5ac690fd3
jael: re-enable ship-to-ship communication
Also fix bug in eth-watcher that didn't cancel outstanding threads when
config changes.

And set default rift for ourselves to 0.
2019-12-17 16:14:07 -08:00
Philip Monk
769a1c96af
eyre: turn sigpam into flog
This error is mostly harmless, but it does indicate we aren't cleaning
up our subscriptions properly.  This lets you silence with |knob.

fixes #2088
2019-12-14 00:49:23 -08:00
Philip Monk
b14606660a
goad: recompile apps after changes to /sys
OTAs commonly end up in an inconsistent state if apps depend on changes
to /sys.  For example, the %sift changes break on OTA because %spider
needs to be reloaded so that it's aware of the new thread type.  This
adds a %goad app, which reloads all apps after every change to /sys.

Getting this to start OTA is nontrivial, but this pattern should work
for apps in the future.  The changes to clock shouldn't generally be
necessary; they are only necessary here because we can't rely on hood to
start goad, since hood fails to compile if it's run before zuse is
reloaded.  Once goad is active, this will cease to be a problem.
2019-12-13 17:14:51 -08:00
Jared Tobin
9ba4505086
Merge branch 'ames-sift' (#2081)
* ames-sift:
  ames: refactor +load
  ames: +send-blob better ship printing
  hood: |ames-sift generator to trace by ship
  ames: add %sift  to trace by ship

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 16:06:32 +08:00
Ted Blackman
35596ca7de
ames: refactor +load 2019-12-12 15:55:37 +08:00
Ted Blackman
d4574b5da4
ames: +send-blob better ship printing 2019-12-12 15:55:36 +08:00
Ted Blackman
d77fb0f685
ames: add %sift to trace by ship 2019-12-12 15:55:32 +08:00
Jared Tobin
85d447f173
Merge branch 'philip/gall-noop' (#2073)
* origin/philip/gall-noop:
  gall: no-op on duplicate watch-ack

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:50:19 +08:00
Jared Tobin
2aa86e3121
Merge branch 'philip/stuck-flow' (#2071)
* origin/philip/stuck-flow:
  ames: recover from mismatched message nums

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:49:53 +08:00
Jared Tobin
e4a7dae888
Merge branch 'philip/login-instructions' (#2039)
* origin/philip/login-instructions:
  eyre: add instructions to login page

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:46:36 +08:00
Philip Monk
3b41a8be15
gall: no-op on duplicate watch-ack
fixes #2070
2019-12-10 18:49:50 -08:00
Philip Monk
29f078bb14
ames: don't forward up the sponsorship chain
This is *actually* why the galaxies are under so much load.  They're in
a forwarding loop with their stars, and this breaks the loop.
2019-12-10 16:20:12 -08:00
Philip Monk
68279d91e4
gall: remove message type from wire
%leave over the network didn't work because we included the message type
in the wire from gall, so the duct for the initial %watch and the %leave
were different.  We need to know the message type so we can route the
acknowledgment as %poke-ack, %watch-ack, or no-op.

This moves this piece of information to a piece of state, where we queue
up the message types per [duct wire].  Ames guarantees that
acknowledgments will come in order.

This also includes an easy state adapter.  The more interesting part of
the upgrade is that we likely have outstanding subscriptions with the
old wire format.  The disadvantage of storing information in wires is
that it can't be upgraded in +load.  So, here we listen for updates on
the old wire format, and when we get them we kill the old subscription,
so that it will be recreated with the new wire format.

As an aside, this is a good example of what we mean when we say
subscriptions may be killed at any time, so apps must handle this case.

Finally, this fixes the "attributing" ship to ~zod for agent requests.
This information was ignored for agent requests, but including it causes
spurious duct mismatches.
2019-12-10 19:32:26 +08:00
Philip Monk
e7c8a44e11
ames: recover from mismatched message nums
We've seen issues where the message-num of the head of live.state is
less than current.state.  When this happens, we continually try to
resend message n-1, but we throw away any acknowledgment for n-1 because
current.state is already n.  This halts progress on that flow.

We don't know what causes us to get in this bad state, so this adds an
assert to the packet pump that we're in a good state, run every time
the packet pump is run.  When this crashes, we can turn on |ames-verb
and hopefully identify the cause.

This also adds logic to +on-wake in the packet pump to not try to resend
any messages that have already been acknowledged.  This is just to
rescue ships that currently have these stuck flows.

(Incidentally, I'd love to have a rr-style debugger for stuff like this.
Just run a command that says "replay my event log watching for this
specific condition and then stop and let me poke around".)
2019-12-09 23:31:18 -08:00
Philip Monk
abde1d8aa9
ames: reduce load by increasing timer delays 2019-12-06 12:11:06 -08:00
Philip Monk
956a3c7420
eyre: add instructions to login page 2019-12-05 12:31:42 -08:00
Ted Blackman
bee0b5803a
ames: don't crash on missing queued larval event 2019-12-05 17:04:24 +08:00
Jared Tobin
41b64feb16
Merge branch 'philip/p2p' (#2025)
* philip/p2p:
  ames: don't overwrite lane if already direct

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-05 16:08:01 +08:00
Philip Monk
5406f06092
ames: don't overwrite lane if already direct
This is why basically all packets are going through the galaxies right
now.  Most of the time, the flow right now is:

* talking to ~dopzod but don't know where it is, so ask ~zod to forward,
  which it does

* ~dopzod responds both directly (on the origin lane) and through ~zod

* (if NAT, the direct response doesn't get back, but the one through
  ~zod does. Then you respond directly to ~dopzod because their lane
  piggybacked on the response. ~dopzod responds both directly and
  through ~zod, and the story picks up the same as if you weren't behind a
  NAT)

* now you have a direct lane to ~dopzod, so all is well.

* now the duplicate response from ~dopzod through ~zod comes in (takes a
  little longer because it's bouncing off ~zod), resetting your lane to
  "provisional"

* since your lane is provisional, you send your next packet both
  directly and through ~zod

* GOTO 2

This change says "if I already have a direct lane, don't overwrite it
with a provisional one". This way, the only way the direct lane can be
overwritten is if they stop responding on it (cleared on "not
responding; still trying").

I also added |- to +send-blob to make |ames-verb %rot less confusing.
2019-12-05 16:05:06 +08:00
Jared Tobin
75ca54ca24
Merge branch 'ames-sponsor-scry-2' (#2021)
* ames-sponsor-scry-2:
  ames: scry for sponsor and don't crash on jael response

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-05 15:43:00 +08:00
Ted Blackman
a7e638ebab ames: scry for sponsor and don't crash on jael response 2019-12-04 17:18:39 -05:00
Ted Blackman
b3f757d88b
ames: send larval crashes to dill 2019-12-05 02:23:13 +08:00
Ted Blackman
4c9cc1542a
ames: dequeue failed larval timer 2019-12-05 02:23:13 +08:00
Ted Blackman
c20f2391e1
ames: print and retry larval crashes 2019-12-05 02:22:27 +08:00
Philip Monk
ebec1eb54f
ping: delay kick until after ames processes breach 2019-12-04 02:27:35 -08:00
Philip Monk
9bc6ccb7fc
ames: don't say not responding if we haven't been talking 2019-12-03 20:21:43 -08:00
Philip Monk
38197fc79d
gen: add comments on new generators 2019-12-03 16:41:29 -08:00
Philip Monk
98b886acf2
Merge remote-tracking branch 'jfranklin9000/master' into rc 2019-12-03 15:10:32 -08:00
Philip Monk
702dd2c07a
verb: add +verb %bowl to print bowl on every event 2019-12-03 15:05:42 -08:00
Philip Monk
8c2c52c01c
ames: make life printf helpful 2019-12-03 13:06:04 -08:00
Philip Monk
2954ed0b55
gall: correctly construct wire for ap-specific-take 2019-12-02 23:46:15 -08:00
Philip Monk
5f1c4805fe
ames: printfs 2019-12-02 23:13:48 -08:00
Philip Monk
c90107659b
Merge remote-tracking branch 'origin/rc-ames-verb' into rc 2019-12-02 20:22:04 -08:00
Philip Monk
93d3edbf73
pill 2019-12-02 20:09:36 -08:00
Philip Monk
9186f232f1
gall: kick after sending leave 2019-12-02 20:09:36 -08:00
Ted Blackman
d0d45ed8f2
ames: fix message pump to complete queueing fix 2019-12-02 20:09:35 -08:00
Ted Blackman
6dcb6622fa
ames: fix ack queueing 2019-12-02 20:09:35 -08:00
Ted Blackman
0cb6464e9d ames: %spew to set verbosity 2019-12-02 18:46:40 -05:00
Philip Monk
096273cf4a
gall: add state upgrade for %pack 2019-12-02 03:20:34 -08:00
Philip Monk
0431c3c073
Merge remote-tracking branch 'origin/jam-cue-rock' into rc 2019-12-02 02:08:37 -08:00
Philip Monk
e3005eaffa
ames: clear out-of-order messages from packet queue 2019-12-02 00:41:50 -08:00
Philip Monk
aaf7b3b42e
ames: don't crash in +on-take-wake 2019-12-01 16:00:32 -08:00
Ted Blackman
0a8b12c882 ames: state adapter 2019-12-01 02:49:46 -05:00
Ted Blackman
900d923ccc ames: fix aggressive lane timeout (still needs migration) 2019-12-01 02:49:46 -05:00
John Franklin
c36edc838e jael: add %lyfe and %ryft scrys (unitized %life and %rift) and use in +trouble 2019-11-30 19:04:18 -06:00
Philip Monk
d6c1ff4e20
ames: add routing diagnostics 2019-11-30 14:44:57 -08:00
Ted Blackman
071b1a4bbe ames: ~s30 max timeout instead of ~m2 2019-11-28 01:17:34 -05:00
Ted Blackman
93604c2f29 Merge branch 'rc' of github.com:urbit/urbit into rc 2019-11-27 23:06:53 -05:00
Ted Blackman
3779cca5a9 ames: try sponsors above .our 2019-11-27 23:06:39 -05:00
Philip Monk
23cc21c383
ames: remove printf 2019-11-27 19:39:12 -08:00
Ted Blackman
e9ba500ee4 Merge branch 'rc' of github.com:urbit/urbit into rc 2019-11-27 22:31:18 -05:00
Philip Monk
26c5be2948
ames: remove printf 2019-11-27 18:40:33 -08:00
Ted Blackman
9af7b3954a ames: ignore encrypted packets from alien comets 2019-11-27 20:58:18 -05:00
Philip Monk
138cbb5d2e
ames: clean up printfs 2019-11-27 16:58:26 -08:00
Philip Monk
fdb1069b33
ames: printfs 2019-11-27 16:43:09 -08:00
Philip Monk
fc74ab2dbd
ames: count unsent messages for backpressure 2019-11-27 15:58:38 -08:00
Philip Monk
74b0f66850
ames: continue processing memos after %done 2019-11-27 15:13:17 -08:00
Philip Monk
f035955a36
ames: rename alef -> ames 2019-11-27 00:46:02 -08:00
Philip Monk
96be4b65a5
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-27 00:14:08 -08:00
Ted Blackman
55c19a7d47 ames: use +crub more in comet logic 2019-11-27 02:13:15 -05:00
Ted Blackman
e3dba2ea75 incorporate @pcmonk's fix for .channel and .peer-state 2019-11-27 02:11:43 -05:00
Philip Monk
d0d66b99f4
ames: save acknowledgement when negative %done 2019-11-26 22:48:22 -08:00
Ted Blackman
6c18a4ef76 ames: use +crub for comet attestation 2019-11-27 01:15:05 -05:00
Ted Blackman
7fdb940b5c ames: fix another comet bug 2019-11-26 23:52:43 -05:00
Ted Blackman
f91a1f4873 ames: fix egregious comet bug 2019-11-26 22:54:00 -05:00
Philip Monk
9a94c35d4d
gall: acutally delete outgoing on watch-ack 2019-11-26 18:18:44 -08:00
Ted Blackman
3f550d669e Merge remote-tracking branch 'origin/philip/mall-real' into mall-testnet 2019-11-26 20:20:23 -05:00
Philip Monk
bf55197baf
ames: backpressure fixes 2019-11-26 14:56:20 -08:00
Philip Monk
7cfe1542e5
ames: too big of messages 2019-11-26 12:00:27 -08:00
Philip Monk
4d1457bbaa
Merge remote-tracking branch 'origin/master' into philip/mall-real 2019-11-24 00:01:04 -08:00
Joe Bryan
3741e734cb dill: adds |pack and and friends 2019-11-22 17:24:42 -08:00
Philip Monk
f8b612d053
ph: add ph-all to run multiple tests 2019-11-22 12:46:30 -08:00
Ted Blackman
5110b3459b ames: only %clog on 5 unsent messages 2019-11-22 08:43:08 -05:00
Ted Blackman
4b4e5ba80c ames: fix typo 2019-11-22 08:42:19 -05:00
Ted Blackman
93ab01e274 ames: minor printing improvements 2019-11-21 23:10:49 -05:00
Philip Monk
9d47222139
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-21 19:07:28 -08:00
Ted Blackman
4446c96814 yet another oops 2019-11-21 21:24:34 -05:00
Ted Blackman
8bbdc45a01 another oops 2019-11-21 21:23:34 -05:00
Ted Blackman
a4bad50e71 oops 2019-11-21 21:22:05 -05:00
Ted Blackman
ae76a33157 ames: kill timers on breach 2019-11-21 21:20:39 -05:00
Ted Blackman
1d88275032 ames: abandon ill-fated decryption reordering 2019-11-21 21:17:43 -05:00
Ted Blackman
29c816c65c ames: fix typo 2019-11-21 21:15:05 -05:00
Ted Blackman
cf543134ee ames: don't repeat broken timers 2019-11-21 21:13:09 -05:00
Ted Blackman
e7be81e219 ames: check life before decrypt 2019-11-21 21:12:42 -05:00
Ted Blackman
b944024893 ames: fix nest-fail; update solid pill 2019-11-21 20:41:17 -05:00
Ted Blackman
4988875ea8 ames: don't brick on timer error 2019-11-21 19:52:57 -05:00
Philip Monk
bdbd35fcf3
gall: virtualize scry
Compare +mute and +mule.  Those pass through scry, which doesn't allow us to
catch crashes due to blocking scry.  If you intercept scry, you can't preserve
the type polymorphically.  By monomorphizing, we are able to do so safely.
2019-11-21 14:47:06 -08:00
Philip Monk
b8903e9a6f
gall: fix ap-kill-down
This broke when %kick was handled by resubscribing on your own ship
because it processed the %kick before the %leave.  For example, `@t`404
at the dojo would put the dojo in an unworkable state.

You want the %leave to be processed first because you can't do a
"resubscribe" in response to that.
2019-11-20 13:24:19 -08:00
Philip Monk
1d1119c1f3
drum: unsubscribe on poke-ack failure 2019-11-20 12:12:33 -08:00
Philip Monk
a5412f01de
Merge branch 'alef-testnet-merge' into philip/mall-real 2019-11-19 13:03:07 -08:00
Philip Monk
6a406e6b29
gall: mall -> gall 2019-11-18 20:36:21 -08:00
Philip Monk
9862dccc0e
mall: age -> app 2019-11-18 19:28:59 -08:00
Philip Monk
fea3bd60e4
dojo: add syntax for imps
This adds syntax for running imps.  For example:

-time ~s1

Runs the "time" imp with the argument ~s1.  This blocks the terminal
until the imp has completed (backspace kills it, of course).  You could
avoid blocking the terminal if you sacrifice the ability to use imps as
sources in more complex commands.

In keeping with this one-and-done view of imps, this also changes spider
to not use a live build of imps.  This significantly reduces the amount
of uncertainty around imps -- spider will try exactly once to run your
imp, and if it fails it'll tell you.  If you want to retry, that's up to
you.
2019-11-15 17:20:56 -08:00
Ted Blackman
49d81265c3 alef: clean up printing 2019-11-14 19:10:48 -05:00
Philip Monk
3dae66332c
jael: process all ships in %full update 2019-11-14 14:54:48 -08:00
Philip Monk
c9f437e3c6
jael: process all ships in %full update 2019-11-14 14:46:14 -08:00
Philip Monk
607a2c0ac6
eyre: fix tests 2019-11-13 19:41:56 -08:00
Jared Tobin
39fb914cdd
Merge branch 'philip/jael-no-sub' (#1944)
* philip/jael-no-sub:
  jael: only listen to azimuth-tracker on boot

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-14 09:58:34 +08:00
Philip Monk
5fd75edcc6
eyre: change id format 2019-11-13 14:07:37 -08:00
Philip Monk
a1b928488d
eyre: remove eyre-id from eyre's state 2019-11-13 01:45:04 -08:00
Philip Monk
cc94abf717
eyre: cancel subscriptions more aggressively 2019-11-13 01:21:14 -08:00
Philip Monk
4a6e98a558
mall, eyre: refactor server apps to be stateless 2019-11-13 00:38:35 -08:00
Philip Monk
47e3b260d5
eyre: subscribe to apps for responses
This removes the %http-response special case from gall.  In its place,
we implement a subscription regime with the following steps:

- Agent sends %connect to Eyre
- Eyre pokes agent with %handle-http-response, including unique eyre-id
- Agent passes %start-watching to Eyre with eyre-id and unique app-id
- Eyre subscribes to agent on /http-response/app-id
- Agent produces a %http-response-header fact followed by 0 or more
  %http-response-data facts and possibly a %http-response-cancel fact
- Agent produces a %kick to close the subscription, which Eyre
  interprets as completion of the message.

This works when there is data.  There is currently a bug where if the
response has no data in total (as in the case of a naked 404), no
response will be sent.

This also includes lib/http-handler, which implements a convenient
interface for agents that want to respond immediately with all the data.
This lets them avoid carrying extra state to keep track of pending
requests.

This should really have access to your state and the ability to change
it.  Perhaps a more minimalist design would be better: just keep track
of the requests, then hand it off to +on-watch when eyre is ready to
receive responses.  It's not clear how to pass in the request data in
+on-watch.
2019-11-12 23:37:38 -08:00
Philip Monk
0e564e2f28
jael: only listen to azimuth-tracker on boot
For some reason Jael subscriptions aren't starting properly for many
people.  Until we can get to the bottom of it, this sets everyone to
start listening directly to the chain.
2019-11-12 22:00:57 -08:00
Philip Monk
b25412b93b
clay: fix meet-conflict crash 2019-11-11 21:42:33 -08:00
Philip Monk
e603681097
clay: fix meet-conflict crash 2019-11-10 14:33:48 -08:00
Philip Monk
ae295d445a
mall: rm old apps for easier merging 2019-11-09 16:53:42 -08:00
Philip Monk
bcd7c5e82d
Merge branch 'master' into philip/mall-real 2019-11-09 16:47:41 -08:00
Philip Monk
7c4316fce4
mall: refactor gift/sign/task types
+on-agent now takes a +sign:agent:mall, which doesn't include spurious
options.  Similarly, +task:agent:mall is smaller.
2019-11-08 17:35:24 -08:00
Philip Monk
1688fe82fd
mall: add flag to default-agent to assist with errors 2019-11-08 13:56:35 -08:00
Philip Monk
d096c18377
mall: properly delete on %kick 2019-11-07 18:25:19 -08:00
Philip Monk
67ef0ed0f7
mall: don't remove sub until sent kick 2019-11-07 16:30:45 -08:00
Philip Monk
68a7f58447
mall: set attributing to immediate source 2019-11-07 14:46:06 -08:00
Philip Monk
9d2585772d
mall: fan out kicks 2019-11-07 13:17:13 -08:00
Philip Monk
43be7737d6
mall: rename agent arms 2019-11-07 00:19:58 -08:00
Philip Monk
23f99e8f85
jael: don't update state until you've tested for breach
We were updating our state and then using that when checking if the rift
had incremented.  This would never be true, since we'd already set the
new state.

Fixes #1852 again
2019-11-06 12:51:33 -08:00
Jared Tobin
24f6309670
Merge branch 'behn-flop-drip' (#1916)
* behn-flop-drip:
  behn: print %drip errors in the correct order

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-06 18:31:45 +08:00
Philip Monk
46d89dd823
mall: convert dns-collector 2019-11-05 19:55:51 -08:00
Joe Bryan
cafb58b080 dill: fixes cursor position during boot 2019-11-05 14:56:15 -08:00
Joe Bryan
5ace479711 dill: adds %goad automation 2019-11-05 14:56:10 -08:00
Joe Bryan
c930aceec6 dill: refactors move production 2019-11-05 13:08:10 -08:00
Joe Bryan
d852d4f159 gall: restores "not-running" printf 2019-11-05 13:04:27 -08:00
Joe Bryan
1b187657cb gall: adds %goad task force agent rebuilds 2019-11-05 13:04:27 -08:00
Joe Bryan
6ccc8b65d5 behn: print %drip errors in the correct order 2019-11-05 00:22:53 -08:00
Philip Monk
0e2da1e130
mall: convert lanaguage-server 2019-11-04 23:47:27 -08:00
Philip Monk
274d518cbc
mall: forward-port gall changes 2019-11-04 20:19:08 -08:00
Philip Monk
82513c27fc
Merge branch 'master' into philip/mall-real 2019-11-04 19:35:24 -08:00
Joe Bryan
ec32a76596 gall: fix virtualization of agent compilation 2019-11-04 15:29:17 -08:00
Ted Blackman
19c4bf7110 alef,gall: %clog notice and handling 2019-11-03 20:35:45 -05:00
Ted Blackman
3ecfbd6a68 fixed merge; sync and hi work again 2019-11-03 00:07:51 -04:00
Ted Blackman
9a02c64b45 Merge branch 'master' into alef-testnet-merge
Untested, has not been run.
Uses master pills for now.  Will need refreshing.
2019-11-02 23:37:01 -04:00
Ted Blackman
22ef92053a gall and ames: |hi works, fixed alef nack-trace bug 2019-11-02 20:52:48 -04:00
Ted Blackman
6f2ebe8ebd gall: deleted +ap-track-queue, boot completes 2019-11-01 16:18:51 -04:00
Ted Blackman
f7c1af8dec pill compiles, but apps unlink on boot 2019-11-01 15:06:09 -04:00
Ted Blackman
925489eba6 /sys: various merge fixes 2019-10-30 16:23:37 -04:00
Ted Blackman
21dabb8895 big merge, including some Alef and Zuse work 2019-10-30 16:12:57 -04:00
Anton Dyudin
78d10f30cd
eyre: fix wire=path terminology 2019-10-25 16:04:29 -07:00
Jared Tobin
7f124db8d9
Merge branch 'philip/jael-ames-full' (#1882)
* philip/jael-ames-full:
  jael: provide edge-triggered breach notification

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-10-25 14:05:01 +08:00
Philip Monk
9ddc04143a
jael: provide edge-triggered breach notification
Until now, clients of Jael have had to store the first-seen rift if they
want to reliably detect breaches.  Otherwise, they would get a false
positive if they heard an old message about a breach (eg if you kick
azimuth-tracker).  Clay and Gall did this correctly, but Ames did not.

Jael already maintains this state, so I added a notification to the
existing subscription that happens whenever it notices a breach (a diff
or full where the new rift is greater than the old one).

Because this is an issue on the live network, I wrote state adapters
for Gall and Clay.  The Gall one just removes the rift from our state,
but the Clay one is much more involved because we have to upgrade
instances of the clad monad that are possibly in progress.
Specifically, since more input is possible than before, we must wrap any
in-progress instances of the monad in a function that handles the
potential new input from Jael.  This temporarily preservers a copy of
the old kernel, but only until the current commit/merge/update has
completed.

The real solution for Clay is to factor out those IO-heavy instances to
userspace tapp/async/imp/threads, and if an upgrade happens in the
middle, you should simply restart them.

Fixes #1852
2019-10-23 21:40:34 -07:00
Jared Tobin
bdfc270b2f
gall: fix bug in +ap-peek
fc7901d2 refactored much of +ap-peek, but introduced a bug in the
process.  The relevant diff from that commit is as follows:

  -        =/  =path  [ren tyl]
  -        =/  =vase  !>((slag p.u.cug path))
  -        (ap-slam q.u.cug p.arm vase)
  +        =/  index  p.u.maybe-arm
  +        =/  term  q.u.maybe-arm
  +        =/  =vase
  +          =/  =path  [term tyl]
  +          =/  raw  (slag index path)
  +          !>  raw
  +        (ap-slam term p.arm vase)

Note that [ren tyl] was replaced with [term tyl], where 'term' and 'ren'
are not equal.  This commit merely rights that wrong.
2019-10-22 15:22:30 +08:00
Philip Monk
87f689f443
custody: add more types 2019-10-21 15:41:28 -07:00
Philip Monk
be212ad54b
ames: better stack traces 2019-10-17 16:52:35 -07:00
Philip Monk
f835ef5a70
ames: don't crash 2019-10-17 12:33:35 -07:00
Jared Tobin
70ed0d6e98
Merge branch 'philip/jael-fix' (#1827)
* philip/jael-fix:
  jael: retrieve first sponsor instead of last

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-10-16 10:06:09 +04:00
Philip Monk
6b8d75a88c
jael: retrieve first sponsor instead of last 2019-10-15 18:04:34 -07:00
Jared Tobin
f0a0c66afd
ames: bump protocol version
A last-minute adjustment to the v0.9.0 release to ensure that ships in
the next era don't become haunted by ghosts of the past one.
2019-10-15 22:32:55 +04:00
Ted Blackman
625f855f24 master without pills, hopefully 2019-10-14 16:02:27 -04:00
Jared Tobin
ac55d362e9
Merge branch 'ames-boot-timer' (#1817)
* ames-boot-timer:
  pills: update solid
  ames: skip timers if unix duct is unset

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-10-11 11:08:35 +04:00
Joe Bryan
e9396973cc ames: skip timers if unix duct is unset 2019-10-10 17:21:39 -07:00
pkova
92cc039155 eyre: fix missing cancel-heartbeat-move cases 2019-10-10 20:59:39 +03:00
pkova
a019c2079e eyre: add channel \n heartbeat every 20 seconds 2019-10-07 03:11:11 +03:00
Jared Tobin
8aeaf1610b
Merge branch 'behn-log-drip-fail' (#1795)
* behn-log-drip-fail:
  updates solid pill
  behn: print error on failed %drip
2019-10-05 16:28:20 +04:00
Ted Blackman
5fcdb02db9 ames: reset congestion control params to 'reasonable' values 2019-10-05 01:00:20 -04:00
Ted Blackman
cc5e2c9564 temporary fast start for testing 2019-10-05 00:41:18 -04:00
Ted Blackman
8749fc7f13 try slowing down once cwnd > 1.000; 200 was too slow 2019-10-04 23:54:09 -04:00
Ted Blackman
eed3d8ce36 try slowing down once cwnd > 200 2019-10-04 23:39:51 -04:00
Ted Blackman
6bae84fbe4 fix enqueued message order 2019-10-04 23:38:32 -04:00
Ted Blackman
32360c2e5a try misordered acks 2019-10-04 23:21:29 -04:00
Isaac Visintainer
e9c639464b eyre: changed cookie format 2019-10-04 15:06:01 -07:00
Philip Monk
d202a4fb56 behn: print error on failed %drip 2019-10-04 14:05:52 -07:00
Ted Blackman
895927e583 print more 2019-10-02 03:46:34 -04:00
Ted Blackman
04bd180542 alef: cap cwnd 2019-10-02 03:37:56 -04:00
Ted Blackman
59ac079488 alef: tweak printing 2019-10-02 03:20:19 -04:00
Ted Blackman
f04e5b9f97 alef: print more 2019-10-02 03:13:11 -04:00
Ted Blackman
850f7b392b tweak printing 2019-10-02 02:47:45 -04:00
Ted Blackman
c480d12995 adjust printing 2019-10-02 02:38:56 -04:00
Ted Blackman
ed0483bd63 alef: preparing for misordered ack handling 2019-10-02 02:21:05 -04:00
Joe Bryan
ef959e0c52 gall: clear caches in response to memory pressure 2019-10-01 15:04:07 -07:00
Joe Bryan
1e9cc07649 eyre: close channels in response to memory pressure 2019-10-01 15:04:03 -07:00
Joe Bryan
8ff445c68c ford: clear caches in response to memory pressure 2019-10-01 11:35:08 -07:00
Philip Monk
9fc28a9538
mall: populate wex.bowl with outgoing subscriptions
fixes #1466
2019-09-30 20:53:12 -07:00
Jared Tobin
21c3119660
gall: remove %gall-booting printf
%gall currently prints

  [%gall-booting <app> p=<ship> q=<desk>]

whenever it receives a %conf (i.e., when it boots an app).  This turns
up in many of the places the old, less-informative '%mo-not-running'
printf did, but it's of similarly little use, and mainly serves to
create redundant line noise.  This commit just removes it.
2019-09-30 01:58:28 +04:00
Jared Tobin
2add146302
Merge branch 'reclamation' (#1773)
* reclamation:
  solid pill
  arvo: wires up %trim memory-pressure event stubs
  u3: wires up the %trim event in the daemon
  u3: adds %trim memory-pressure notification "effect"
  u3: tweaks |mass output (and fixes inadvertent truncation)
  u3: refactors periodic memory reclamation
  u3: factors out u3a_idle() to measure free-lists in a road
  u3: adds and uses u3a_full/heap/temp road macros
  u3: cleans up whitespace, removes dead code in allocator
2019-09-29 21:30:56 +04:00
Jared Tobin
5c99f33271
Merge branch 'ted/verb' (#1754)
* ted/verb:
  update pill
  hood: |knob {tag} {level} to set dill verbosity
  dill: set verbosity by error tag
2019-09-29 21:09:05 +04:00
Philip Monk
9c9115a7e0
spider, ph: convert ph to imps 2019-09-28 21:44:31 -07:00
Joe Bryan
3dd9bd7111 arvo: wires up %trim memory-pressure event stubs 2019-09-27 13:02:11 -07:00
Ted Blackman
f2073dbc34 dill: set verbosity by error tag 2019-09-27 13:55:14 -04:00
Philip Monk
b79dead5f8
spider: convert example-fetch to imp 2019-09-27 10:40:22 -07:00
Logan Allen
9a62a04042
eyre: better error handling in channel js 2019-09-27 16:30:53 +04:00
Ted Blackman
087adacc15 alef: reno-style congestion control (todo: misordered acks) 2019-09-27 07:45:22 -04:00
Philip Monk
e6f5b0d3fd
mall: fix %child-sync ph test 2019-09-25 13:19:09 -07:00
Philip Monk
a4dcad7d46
gall: unsubscribe after breach
fixes #1431
2019-09-24 15:00:16 -07:00
Philip Monk
30f74368fb
mall: convert hall to mall 2019-09-23 20:46:59 -07:00
Philip Monk
fc9f17ae23
mall: convert talk to mall
also change !< to crash on failure
2019-09-23 15:44:48 -07:00
Ted Blackman
cfce0e1390 turn off some debug printfs for benchmarking 2019-09-16 22:04:56 -04:00
Philip Monk
839a822f71
mall: convert hood/dojo to refactored form 2019-09-12 15:01:55 -07:00
Philip Monk
fbf56e3033
mall: refactor and rename
remove bones, give agent arms long names, remove metavase use, general
cleanup
2019-09-11 21:02:49 -07:00
Jared Tobin
472c27ef6c
Merge branch 'barbus' (#1712)
* barbus:
  hoon: removed unused parser type
  hoon: remove extraneous cast
  hoon: removed barhax. No hax!
  hoon: replace barhax with barbus
  hoon: changed barbus to match barhax
  hoon: replaced barbus usage with barhax
  hoon: add parsing for barhax
  hoon: added barhax to replace barbus
  hoon: update tall parsing for |$
  hoon: replace +* name usage with ++  name  |$
  hoon: add parsing rules for |$
  hoon: add ast for |$
2019-09-11 15:27:04 -02:30
David Kerschner
60c6d4fed1 hoon: replace barhax with barbus 2019-09-11 01:20:21 -07:00
David Kerschner
504e4fcac1 hoon: replaced barbus usage with barhax 2019-09-11 01:20:10 -07:00
Philip Monk
263b151dcb
clay: answer ~ to %next request if file is deleted 2019-09-10 13:49:12 -07:00
David Kerschner
b226d24a50 hoon: replace +* name usage with ++ name |$ 2019-09-10 11:59:22 -07:00
Philip Monk
1ca4c72aa5
mall: make boot 2019-09-09 20:04:38 -07:00
Joe Bryan
a6272a97a8
arvo, ford: add type safety to scry
Adds a nest-check to the scry-wrapper functions +sloy and +sloy-light,
plugging a type hole in .^ namespace reads (scry).
2019-09-08 19:44:06 -02:30
Philip Monk
fc682fc585
Merge remote-tracking branch 'origin/scry-safe-mule' into philip/mall-real 2019-09-06 13:18:42 -07:00
Philip Monk
2c5a478a84
mall: convert drum to mall 2019-09-05 20:01:31 -07:00
Philip Monk
84c7b442e9
mall: convert helm to mall 2019-09-05 18:46:55 -07:00
Philip Monk
f52e60bb09
mall: use +stay instead of explicit state 2019-09-04 14:20:47 -07:00
Philip Monk
bc1ba10a11
mall: compiles and runs app, but type hole 2019-09-04 12:49:16 -07:00
Philip Monk
f8171138c3
mall: add lame handling 2019-09-03 11:04:58 -07:00
Philip Monk
449935739d
mall: rewrite gall with static +agent 2019-09-03 11:03:48 -07:00
Jared Tobin
0bd06fe210
Merge branch 'jt-gall-refactor' (#1668)
* jt-gall-refactor: (76 commits)
  gall: fix issue id in comment
  pills: update solid
  gall: handle foreign coup success
  gall: only print peek bad result if bad
  gall: add basic test harness
  pills: update solid, brass, ivory
  gall: fix obvious nest-failing tisdot
  gall: change '-state' to '-core' for +mo and +ap
  zuse, gall: deprecate 'club'
  zuse, gall, eyre: deprecate 'cush'
  zuse, gall, eyre, dojo: deprecate 'cuft'
  gall: remove slam-related printfs
  gall: remove deprecated 'mak' from 'agents'
  gall: use less vertical spacing throughout
  gall: add comment re: unpopulated wex
  gall: use less vertical separation when wuthepping
  gall: fix whitespace
  gall: don't define 'move' as a pair
  gall: don't give faces to tags
  gall: gut some unused stuff
  ...
2019-08-29 19:05:25 -02:30
Ted Blackman
72b2dbe19e don't back off on skipped packet 2019-08-28 18:30:31 -07:00
Ted Blackman
99b98ca744 ames: print duplicate acks 2019-08-28 18:09:05 -07:00
Ted Blackman
4334b25ac6 hopefully fix packet sending 2019-08-28 17:58:44 -07:00
Ted Blackman
0fe443fc7c print to figure out why this is broken 2019-08-28 17:44:36 -07:00
Ted Blackman
e6e919b9bf moar gauge changes 2019-08-28 17:28:31 -07:00
Joe Bryan
ee84936add adds type-safety to scry via +nets:wa in the scry-wrappers 2019-08-28 15:39:04 -07:00
Jared Tobin
9f371aff66
Merge branch 'pkova/cookie-change' (#1667)
* pkova/cookie-change:
  eyre: make auth cookie live for one week

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-08-28 19:20:08 -02:30
pkova
814ac7a4f9 eyre: make auth cookie live for one week 2019-08-28 22:40:20 +03:00
Ted Blackman
461495658f don't resend as much; print differently 2019-08-27 22:35:01 -07:00
Ted Blackman
84742025e7 ames: slow multiplicatively on skipped packet 2019-08-27 21:41:32 -07:00
Ted Blackman
88cfba3bf1 ames: print and smoother RTT 2019-08-27 21:25:35 -07:00
Ted Blackman
46f0e6c1ae ames: congestion control backoff 2019-08-27 21:12:12 -07:00
Ted Blackman
ffdaa1694a ames: first attempt at congestion control 2019-08-27 20:53:19 -07:00
Ted Blackman
ca00d89286 %lost ames gift and stub handlers in vanes 2019-08-27 20:12:56 -07:00
Ted Blackman
0fc1675928 Merge branch 'master' into alef-testnet 2019-08-27 14:06:09 -07:00
Jared Tobin
b8d1dc9220
gall: fix issue id in comment
The comment was pointing at the wrong GitHub issue.
2019-08-27 14:10:11 -02:30
Philip Monk
4e62ce2905
gall: handle foreign coup success 2019-08-27 10:00:08 -02:30
Philip Monk
3e6625d20f
gall: only print peek bad result if bad 2019-08-27 09:59:56 -02:30
Philip Monk
a25b082e04
dill, helm: add lite boot option with -l 2019-08-26 11:04:24 -07:00
Ted Blackman
a50181b65c fix old jael subscription bug; aqua %hi-cousin-az passes 2019-08-23 18:19:50 -07:00
Ted Blackman
507a5f722f alef: stop queueing alien packets; %breach-sudden passes 2019-08-22 22:53:38 -07:00
Ted Blackman
bad425660c alef: %breach-hi aqua test passes 2019-08-22 20:53:45 -07:00
Ted Blackman
039a691a2e alef: preserve peer pki data on breach 2019-08-22 19:51:51 -07:00
Jared Tobin
48901a3ded
gall: fix obvious nest-failing tisdot 2019-08-22 12:33:24 -02:30
Jared Tobin
d2d5d663d8
gall: change '-state' to '-core' for +mo and +ap 2019-08-22 12:33:24 -02:30
Jared Tobin
2b04b43262
zuse, gall: deprecate 'club'
Replaces with 'agent-action'.
2019-08-22 12:33:24 -02:30
Jared Tobin
38efc5e902
zuse, gall, eyre: deprecate 'cush'
Replaces with 'internal-task'.
2019-08-22 12:33:24 -02:30
Jared Tobin
ef99074304
zuse, gall, eyre, dojo: deprecate 'cuft'
Replaces it with the more informative name 'internal-gift'.
2019-08-22 12:33:24 -02:30
Jared Tobin
2fdb26096a
gall: remove slam-related printfs 2019-08-22 12:33:24 -02:30
Jared Tobin
624660ac60
gall: remove deprecated 'mak' from 'agents' 2019-08-22 12:33:23 -02:30
Jared Tobin
f435716406
gall: use less vertical spacing throughout 2019-08-22 12:33:23 -02:30
Jared Tobin
6a1478d8d9
gall: add comment re: unpopulated wex 2019-08-22 12:33:23 -02:30
Jared Tobin
cc7ac3cb2d
gall: use less vertical separation when wuthepping 2019-08-22 12:33:23 -02:30
Jared Tobin
a2d21debf5
gall: fix whitespace 2019-08-22 12:33:23 -02:30
Jared Tobin
04bff8ea96
gall: don't define 'move' as a pair 2019-08-22 12:33:23 -02:30
Jared Tobin
9ce3445e60
gall: don't give faces to tags 2019-08-22 12:33:22 -02:30
Jared Tobin
09103d59fd
gall: gut some unused stuff
Gets rid of 'voltage', 'security-control', and 'privilege', all of which
were either superfluous or were not actually used anywhere.
2019-08-22 12:33:22 -02:30
Jared Tobin
84924e6093
gall: indent multiline arm comments appropriately 2019-08-22 12:33:22 -02:30
Jared Tobin
f2c0cfd045
gall: use type spear inline 2019-08-22 12:33:22 -02:30
Jared Tobin
0cab280e70
gall: improve comment formatting
One-liners should not terminate with a full stop.
2019-08-22 12:33:22 -02:30
Jared Tobin
67ddf7cfbc
gall: replace 'gall' with 'state' throughout
Previously 'gall' had shadowed the rather-important definition in %zuse,
which is probably pushing the shadowing convention a little far.
2019-08-22 12:33:22 -02:30
Jared Tobin
575aeb3b2e
gall: miscellaneous formatting fixes 2019-08-22 12:33:22 -02:30
Jared Tobin
97de72d2ce
gall: remove %sunk, fix 'ship-state' in %wash case 2019-08-22 12:33:20 -02:30
Jared Tobin
7dc02ded4a
gall: some renaming, comments 2019-08-22 12:33:20 -02:30
Jared Tobin
92fbc80ea6
gall: more lighter-than-eyre compatibility 2019-08-22 12:33:20 -02:30
Jared Tobin
2c6281c0b4
gall: remove references to %hiss 2019-08-22 12:33:20 -02:30
Jared Tobin
90e14d62f2
gall: additional comments 2019-08-22 12:33:20 -02:30
Jared Tobin
d618ac2904
gall: reshuffle some +mo content 2019-08-22 12:33:20 -02:30
Jared Tobin
d9f32fe898
gall: add commentary 2019-08-22 12:33:20 -02:30
Jared Tobin
3aab487036
gall: formatting fix 2019-08-22 12:33:19 -02:30
Jared Tobin
d94bd429c2
gall: improve naming of various concepts 2019-08-22 12:33:19 -02:30
Jared Tobin
7e3a110c58
gall: be less skittish about using tisdot. 2019-08-22 12:33:19 -02:30
Jared Tobin
9ddf8982cf
gall: fix '%as' typo
Additionally chops out an arguably-excessive tisfas.
2019-08-22 12:33:19 -02:30
Jared Tobin
3d0137687f
gall: clear out some printfs
All of these were used for debugging.
2019-08-22 12:33:19 -02:30
Jared Tobin
c512eba4b1
gall: fix +ap-abed bug
This was simply due to mistranslating the previous code.
2019-08-22 12:33:19 -02:30
Jared Tobin
d19047aba6
gall: rename 'ship-state' to 'apps' 2019-08-22 12:33:18 -02:30
Jared Tobin
38474fbadf
gall: miscellaneous cleanup 2019-08-22 12:33:18 -02:30
Jared Tobin
aec215b3a8
gall: replace 'dude' with 'term' throughout
'dude' may be useful as a value-level mnemonic, but adds no useful
information at the type level.
2019-08-22 12:33:18 -02:30
Jared Tobin
efb93fea34
gall: miscellaneous minor fixes 2019-08-22 12:33:18 -02:30
Jared Tobin
fc7901d2d1
gall: miscellaneous large-scale cleaning 2019-08-22 12:19:16 -02:30
Jared Tobin
c221c2c5ae
gall: type and non-+mo/+ap arm cleanup 2019-08-22 12:19:05 -02:30
Jared Tobin
09c3fbf52c
gall: another cleanup pass over +ap 2019-08-22 12:19:01 -02:30
Jared Tobin
4dc990b22d
gall: simplify bone/duct map names 2019-08-22 12:18:24 -02:30
Jared Tobin
ce960c9f56
gall: misc. cleanup of +ap state and arms 2019-08-22 12:18:16 -02:30
Jared Tobin
730a443e68
gall: kill +mo-conf, plus misc cleaning
+mo-conf was superfluous, and has thus been removed.
2019-08-22 12:17:21 -02:30
Jared Tobin
ffae93ba1a
gall: more cleanup to +ap arms 2019-08-22 12:17:14 -02:30
Jared Tobin
953627cec3
gall: initial syntax pass over +ap 2019-08-22 12:17:08 -02:30
Jared Tobin
dbc946a1fd
gall: some lark replacements 2019-08-22 12:17:05 -02:30
Jared Tobin
8b9a208f0f
gall: misc cleanup to +mo 2019-08-22 12:16:59 -02:30
Jared Tobin
ca20beb37f
gall: simplify sofa 2019-08-22 12:16:49 -02:30
Jared Tobin
59455b38ac
gall: cleanup pass over +mo 2019-08-22 12:16:42 -02:30
Jared Tobin
832245e1e5
gall: get rid of context lark 2019-08-22 12:16:38 -02:30
Jared Tobin
9fa4f44b8c
gall: fix path in +mo-cyst 2019-08-22 12:16:16 -02:30