Commit Graph

6556 Commits

Author SHA1 Message Date
Philip Monk
4ae324849f kiln: remove |bump 2022-09-12 20:29:59 -08:00
Philip Monk
f61d16965a kiln: fix +vat,+vats 2022-09-12 20:22:22 -08:00
Philip Monk
18b65a973f kiln: fix |ota and installing locally 2022-09-07 22:45:11 -08:00
Philip Monk
c82b7c4ff2 kiln: fixes 2022-09-07 22:38:35 -08:00
Philip Monk
0d757b4436 kiln: migrate previous OTA state 2022-09-07 21:56:12 -08:00
fang
50ee2eb1c0
Merge pull request #5951 from urbit/pkova/dns-race
dns-address: subscribe before poke and fix wire mismatch
2022-09-07 19:41:14 +02:00
Philip Monk
1102288d75 kiln: remove old |sync, various fixes 2022-09-06 22:52:59 -08:00
xiphiness
2bc2d5a1bb
dojo dir validation: %ct scry at case da+now if imaginary case 0
PR #5840 mostly fixed #1559, but introduced a new bug. before, you could safely `=dir` into a desk without a case, and it would use the nonexistent case `ud+0` as the beam for dojo state, and switch that out for da+now whenever it tries to resolve the current path. but this check causes it to fail, because `ud+0` is a nonexistent case. this uses he-beam to transform the beam in the conditional to see if the case is 0, and if it is, changes the case to da+now before it scries
2022-09-06 16:24:22 -05:00
fang
108c6253d3
Merge branch 'philip/nuke' into next/arvo 2022-09-06 22:25:19 +02:00
fang
f46d8dd557
Merge pull request #5974 from urbit/m/recork-slower
ames: bump recork timer back up to a day
2022-09-06 22:18:14 +02:00
fang
bc597c25ef
Merge pull request #5978 from urbit/philip/nuke
gall: don't add duplicate nonce in +ap-nuke
2022-09-06 22:17:49 +02:00
fang
7a4034f48a
Merge pull request #5977 from urbit/m/cork-undone
ames, gall: no %done on corks
2022-09-06 22:17:34 +02:00
fang
9c931f844b
Merge pull request #5976 from urbit/m/ames-restir
ames: clean & re-set recork timer during %stir
2022-09-06 22:17:18 +02:00
fang
36dd2f8ace
Merge branch 'next/arvo' into m/recork-slower 2022-09-06 22:16:41 +02:00
fang
e22b198dea
Merge pull request #5972 from urbit/ted/grq-test-2
tests: ames+gall subscribe/kick/resubscribe sequence
2022-09-06 22:15:47 +02:00
fang
fec3c45d30
Merge pull request #5971 from urbit/jb/recork-error
ames: handle failed recork timers
2022-09-06 22:15:12 +02:00
Joe Bryan
e4e0c31975 hoon: updates +slew to avoid dynamic eval 2022-09-06 12:50:44 -04:00
Joe Bryan
d89c73fc79 hoon: update key virtualization gates to use fully-static formulas 2022-09-06 11:05:08 -04:00
Joe Bryan
657c5c5a03 pill: update +solid formulas to be more static 2022-09-06 11:04:46 -04:00
Joe Bryan
f91c6c54db arvo: update bootstrap/lifecycle formulas to be fully static 2022-09-06 11:03:21 -04:00
Tinnus Napbus
27349c51ab eyre: add auto-https redirects
if a cert is configured and a secure port is live it will set the
redirect flag in http-config.state.

When it gets a ++request it will return a 301 redirect to
https://[host]/[path] if:

  1. not already secure
  2. redirect flag set
  3. secure port live
  4. is not requesting /.well-known/acme-challenge/...
  5. the host is in domains.state

It will not happen if forwarded-secured, localhost, local loopback, ip
addresses or domains not in domains.state.

in ++load it checks the secure port is live and a cert is set and
enables it if so (for people who already use in-urbit letencrypt)

%rule %cert tasks also toggle it (only turning it on if secure port
live)

%live tasks also toggle it (only turning it on if cert set)

Have tested with a couple of ships and seems to work fine.

This is useful in combination with pyry's auto arvo.network dns config
system - can finally get rid of reverse proxies entirely.
2022-09-04 02:58:09 +12:00
Philip Monk
8884e7dfbc kiln: make compile 2022-09-02 16:51:39 -08:00
Philip Monk
093f0ae9de Merge branch 'philip/inline-thread' into philip/agent-clay-wip 2022-09-01 19:03:17 -08:00
Philip Monk
3aea8220bc kiln: add +sync 2022-08-30 18:32:31 -08:00
fang
53cc33b291
eyre: look for lowercase last-event-id header
Eyre always gets passed request headers in lowercase, so we should search for
the lowercased version of the header.

Arguably `+get-header` should lowercase keys before comparing them, but that's
a more serious behavioral change.
2022-08-30 16:44:11 +02:00
Philip Monk
e3a8cab943 khan: support inline threads
This allows you to pass a thread directly into khan, instead of passing
a filename.  This has several implications:

- The friction for using threads from an app is significantly lower.
  Consider:

    =/  shed
      =/  m  (strand ,vase)
      ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('hi'))
      ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('there'))
      (pure:m !>('product'))
    [%pass /wire %arvo %k %lard %base shed]

- These threads close over their subject, so you don't need to parse
  arguments out from a vase -- you can just refer to them.  The produced
  value must still be a vase.

    ++  hi-ship
      |=  [=ship msg1=@t msg2=@t]
      =/  shed
        =/  m  (strand ,vase)
        ;<  ~  bind:m  (poke:strandio [ship %hood] %helm-hi !>(msg1))
        ;<  ~  bind:m  (poke:strandio [ship %hood] %helm-hi !>(msg2))
        (pure:m !>('product'))
      [%pass /wire %arvo %k %lard %base shed]

- Inline threads can be added to the dojo, though this PR does not add
  any sugar for this.

    =strandio -build-file %/lib/strandio/hoon
    =sh |=  message=@t
        =/  m  (strand:rand ,vase)
        ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>('hi'))
        ;<  ~  bind:m  (poke:strandio [our %hood] %helm-hi !>(message))
        (pure:m !>('product'))
    |pass [%k %lard %base (sh 'the message')]

Implementation notes:
- Review the commits separately: the first is small and implements the
  real feature.  The second moves the strand types into lull so khan can
  refer to them.

- In lull, I wanted to put +rand inside +khan, but this fails to that
  issue that puts the compiler in a loop.  +rand depends on +gall, which
  depends on +sign-arvo, which depends on +khan.  If +rand is in +khan,
  this spins the compiler.  The usual solution is to either move
  everything into the same battery (very ugly here) or break the
  recursion (which we do here).
2022-08-29 21:04:50 -08:00
Philip Monk
0e14eedb50 spider: accept inline threads 2022-08-29 20:09:08 -08:00
Philip Monk
4bef3277d5 azimuth: remove :azimuth|kick 2022-08-29 10:57:47 -08:00
Philip Monk
fa569cf7f3 kiln: wip 2022-08-29 10:53:36 -08:00
Philip Monk
9a4d754429 clay: add +tire subscription for app state 2022-08-25 19:13:51 -08:00
Philip Monk
1ce53d06ba gall: don't add duplicate nonce in +ap-nuke
This gets added in +ap-handle-peers.  This caused outgoing subscriptions
to not get cleaned up properly.

Issue introduced in c2d77a5d.
2022-08-25 13:29:51 -08:00
fang
ab75e83398
gall: don't enqueue %cork as outstanding
Ames will no longer send acks. Consider it completed immediately, and
clean up the outstanding queue whenever it's empty.
2022-08-25 18:14:40 +02:00
fang
0e5b3b4107
ames: don't give %done on cork
Locally, %cork is guaranteed to succeed instantly. The requesting vane
doesn't need an ack to safely consider the flow "closed".
2022-08-25 18:13:29 +02:00
Ted Blackman
5fb20a57cb tests: give %cork ack to gall 2022-08-25 16:36:14 +03:00
Ted Blackman
9b2f95b7b3 ames: revert added debug print 2022-08-25 16:36:14 +03:00
Ted Blackman
80c5172490 tests: check for correct subscription nonce 2022-08-25 16:36:14 +03:00
Ted Blackman
5ee16c38a1 tests: ames+gall full subscribe+clog+kick+resubscribe sequence 2022-08-25 16:36:14 +03:00
Ted Blackman
f558ad4348 tests: more steps, subscriber ames now sends %cork 2022-08-25 16:36:14 +03:00
Ted Blackman
59d71ecbc9 tests: remove defunct test library 2022-08-25 16:36:14 +03:00
Ted Blackman
15861150ba /lib/test/ames-gall: clean up lanes 2022-08-25 16:36:14 +03:00
Ted Blackman
c67a358308 tests: helper core to avoid repeated metamorphoses 2022-08-25 16:36:14 +03:00
Ted Blackman
94cb3952b7 tests: subscriber ames gets kick 2022-08-25 16:36:14 +03:00
Ted Blackman
0b2ba509c3 tests: gall and ames give kick over network 2022-08-25 16:36:14 +03:00
Ted Blackman
c301930fac tests: give %kick from %clog 2022-08-25 16:36:14 +03:00
Ted Blackman
59c5aa0b2a tests: give %clog to gall 2022-08-25 16:36:14 +03:00
Ted Blackman
c0adf6c25c tests: %watch to %watch-ack codepath complete 2022-08-25 16:36:14 +03:00
Ted Blackman
cfdf4d8467 tests: fix 2022-08-25 16:36:14 +03:00
Ted Blackman
583dd42747 tests: ames receives %watch-ack 2022-08-25 16:36:14 +03:00
Ted Blackman
01f761d07a tests: receiver ames sends %watch-ack packet 2022-08-25 16:36:14 +03:00
Ted Blackman
4518cf4838 tests: receiver gall gives %done to ames 2022-08-25 16:36:14 +03:00
Ted Blackman
becb1d7f18 tests: gall runs %pub +on-watch 2022-08-25 16:36:14 +03:00
Ted Blackman
52637ea2fe tests: ames passes %watch to gall on receiver, gall emits %deal to itself 2022-08-25 16:36:14 +03:00
Ted Blackman
1f9e04ab1c tests: ames sends %watch %plea 2022-08-25 16:36:14 +03:00
Ted Blackman
e2e4a102e8 tests: ~nec gall passes %watch to itself 2022-08-25 16:36:13 +03:00
Ted Blackman
3fdc7379a2 tests: get %sub agent to emit %watch 2022-08-25 16:36:13 +03:00
Ted Blackman
317f03e337 tests: test galls can now load %sub and %pub agents 2022-08-25 16:36:13 +03:00
Ted Blackman
c48c2f4b6a /lib/test: add +run-chain for test sequences 2022-08-25 16:36:13 +03:00
Ted Blackman
f2b85df948 tests: initial setup for gall and ames on two ships 2022-08-25 16:36:13 +03:00
Ted Blackman
81bfe17f37 tests: WIP gall request queue tests 2022-08-25 16:36:13 +03:00
fang
81462da7aa
ames: clean & re-set recork timer during %stir
Pre-release ships may have multiple recork timers. This ensures that,
after stir, we always have exactly one.
2022-08-25 14:42:16 +02:00
fang
0871c24e24
ames: bump recork timer back up to a day
We had lowered this initially for easier testing, but a day should be
sufficient for real-world use.
2022-08-25 14:11:45 +02:00
fang
b2422030f7
ames: correctly identify stale routes 2022-08-25 13:41:55 +02:00
Philip Monk
ed3b028d9a Merge remote-tracking branch 'origin/master' into philip/snap 2022-08-23 14:16:57 -08:00
Joe Bryan
76cc8939d3 ames: fix error slog on failed attestation timer 2022-08-23 14:34:08 -04:00
Joe Bryan
5b8f26558e ames: handle failed recork timers 2022-08-23 14:33:53 -04:00
Joe Bryan
679b38138d ames: prevent larval stage from possibly clobbering adult state 2022-08-23 10:37:01 -04:00
Ted Blackman
5a96f3bdbe ames: drop %hear as larva; check duct before metamorpohse 2022-08-23 16:45:17 +03:00
Ted Blackman
07601c6bee ames: metamorphose on first +take if possible 2022-08-23 16:09:35 +03:00
Ted Blackman
9abe49489d ames: +on-stir clean up comments 2022-08-23 13:31:10 +03:00
Joe Bryan
9439841ce8 ames: refactor %stir, %rest stale/wrong timers 2022-08-22 20:14:02 -04:00
DaneBettis
1b93d43757 this branch PR is now for xray only. meme later. 2022-08-22 08:24:19 +00:00
DaneBettis
e4a204583a added macro to clarify _slog_bytecode and cleaned hoon hint tests 2022-08-22 08:24:19 +00:00
DaneBettis
4499f21a25 silenced the broken hoon tests 2022-08-22 08:24:18 +00:00
DaneBettis
1e253f2f7b more xray debugs via ~master-morzod 2022-08-22 08:24:18 +00:00
DaneBettis
2f71e52857 more notes and debugging for xray 2022-08-22 08:24:18 +00:00
DaneBettis
0b9559a851 adds xray test, reorders tests, fixes sanity checks 2022-08-22 08:24:18 +00:00
DaneBettis
2dfde98b0f Adds %meme and %xray hints.
%meme reports mem usage at callsite.
%xray prints the vere bytecode of the hoon tree wrapped by the hint.
2022-08-22 08:24:18 +00:00
Philip Monk
43ad38cd82 azimuth: reorder %kick flow
Before this, the %watch to eth-watcher was happening before the %poke,
and so eth-watcher was responding with its entire history immediately.
This is bad because it takes a lot of memory to process that many logs,
and also because those logs are stale.

Now, the %poke happens first, which clears the history.
2022-08-19 20:22:20 -08:00
Philip Monk
c6024c2661 azimuth: clear logs on %kick
%kick is supposed to start back from the snapshot and move forward.
Without this, we would only fetch logs that we hadn't already fetched.
Thus, if you were up-to-date when you kicked, you would miss anything
that happened between the time the snapshot was taken and the present,
though you would see things after the present.

Also reverted lull change to make this a safer upgrade.
2022-08-19 15:04:30 -08:00
fang
a04d564269
Merge pull request #5963 from urbit/m/ames-eager-molt
ames: ensure larva initializes adult's state
2022-08-20 00:35:50 +02:00
fang
3a7938f057
ames: say "metamorphosis" in all relevant cases 2022-08-20 00:05:20 +02:00
fang
53b0e7ecaa
ames: ensure larva initializes adult's state
Previously, when the larva got to processing enqueued events, it was
doing so without loading state into the adult beforehand, resulting in
incorrect processing of events.

Here, we make the larva call +molt more eagerly, ensuring that the adult
always has its state available when we use it.
2022-08-19 23:58:10 +02:00
Philip Monk
ca0a00cb3c Merge remote-tracking branch 'origin/master' into philip/snap 2022-08-19 12:37:25 -08:00
fang
8108595b2b
gall: don't inject potentially-fake acks
We shouldn't be hitting this case anymore. Injecting events into agents
which they might not expect, and might not even be real, is bad.
2022-08-19 21:39:44 +02:00
fang
59f0556e3b
Merge pull request #5958 from urbit/ted/rake
gall: %rake task to clean up dead %leave's
2022-08-19 21:29:08 +02:00
fang
de6f525f02
Merge pull request #5956 from urbit/ted/gen-ames-flows
+ames-flows: diagnostic generator to count ames flows
2022-08-19 21:23:38 +02:00
fang
a79f2f27e5
Merge pull request #5961 from urbit/m/ames-stir-thoroughly
ames: don't skip closing flows in +on-stir
2022-08-19 21:22:49 +02:00
fang
a9a8619daa
Merge pull request #5947 from urbit/ted/staying-alive-rebase
gall: revive %hood and %dojo on keypress
2022-08-19 21:22:28 +02:00
fang
ce2e433a8a
ames: don't skip closing flows in +on-stir
Yes, there is a global timer for closing flows, but all that does is
enqueue a cork message. +on-stir needs to set _pump_ timers for all
flows that might still have messages to send, which includes closing
flows.
2022-08-19 20:26:08 +02:00
fang
cfa18b1f1f
gall: when kicked, register %cork as outstanding
When ames notifies us that our subscription has been kicked, we enqueue
a cork to clean up the flow. Unlike the %leave case, however, we were
not registering the cork in the queue of outstanding comms. We would
eventually get an ack, but not know what for, and erroneously inject
%poke-acks and %watch-acks.

Here we simply add a %cork entry to the queue before sending it.
2022-08-19 16:04:36 +02:00
fang
c8a163fedb
gall: clean up big wire construction 2022-08-18 22:46:58 +02:00
fang
a5335f5851
gall: improve match detection in +ap-rake
Making sure to stringify the nonce and including all the target details in the
wire, and excluding flows that are already closing.
2022-08-18 22:39:54 +02:00
fang
f0620b145b
ames-flows: more fine-grained open flow counting 2022-08-18 22:24:20 +02:00
Ted Blackman
d8df2787a0 gall: %rake task to clean up dead %leave's 2022-08-18 20:34:42 +03:00
Tinnus Napbus
4016211bc0 -dns-address: fix wire mismatch 2022-08-18 23:22:57 +12:00
Ted Blackman
82aea06c02 +ames-flows: diagnostic generator to count ames flows 2022-08-18 12:40:49 +03:00
Pyry Kovanen
3135eb6137
dns-address: subscribe before poke 2022-08-17 14:08:33 +03:00
fang
b4331d564e
Merge pull request #5949 from urbit/m/gall-redoff
gall: re-enable doff, only for old-style subs
2022-08-17 10:39:31 +02:00
Philip Monk
50c22343b6 clay: wip 2022-08-16 20:33:25 -08:00
fang
497d790e59
gen: remove printf from +gall-nonces 2022-08-16 23:53:18 +02:00
fang
24cf4497e9
gen: add +gall-nonces for reading all next nonces 2022-08-16 23:24:32 +02:00
fang
18019d6d83
gall: re-enable doff, only for old-style subs
This is sufficient to bring the normal (non-prerelease-bugged) cases
into the new world.

For the prerelease ships that ran a buggier version of the new gall
subscription logic, we note that the conditional may trigger for the
nonce=1 case where it had already triggered for their
(shouldn't-be-possible) nonce=0 case. This results in a %leave on a wire
that wasn't in use. This no-ops on the publisher side though, and the
flow gets corked right away, so this is considered harmless.
2022-08-16 23:02:59 +02:00
Ted Blackman
c972c0fbe2 gall: roundtrip through arvo to revive %hood and %dojo 2022-08-16 01:37:35 +03:00
Ted Blackman
95580f7e83 gall: revive %hood and %dojo on poke 2022-08-16 00:40:38 +03:00
Ted Blackman
a70c2ffe1a gall: now restarts %hood, but not %dojo yet 2022-08-16 00:40:38 +03:00
Ted Blackman
ac072729c2 gall: force load %hood and %dojo on poke 2022-08-16 00:40:38 +03:00
fang
81f18d13ad
gall: remove outdated fixme comment
This is part of the %doff work, which is getting integrated elsewhere.
2022-08-15 12:24:18 +02:00
fang
5e43a9de56
Merge pull request #5941 from urbit/ted/nodoff
gall: disable %doff for now
2022-08-12 19:57:22 +02:00
Joe Bryan
205b5013e4 base: adds generator for getting %ames timer counts 2022-08-11 21:45:09 -04:00
Ted Blackman
1898483a45 gall: disable %doff for now 2022-08-12 00:55:19 +03:00
Ted Blackman
b1bab79f58 gall: add %f scry for sub-nonce's 2022-08-11 22:33:57 +03:00
Ted Blackman
7f35429e22
Merge pull request #5937 from urbit/ted/grq-test
ames: fix comet test
2022-08-11 22:27:15 +03:00
fang
350f33d6ba
Merge branch 'next/arvo' into ted/doff-6 2022-08-11 21:06:30 +02:00
Ted Blackman
91d6956388 tests: fix ames comet test 2022-08-11 20:49:09 +03:00
fang
5b4a964cdf
gall: fix the %doff conditional
No comment.
2022-08-11 19:48:27 +02:00
fang
06b7f52755
gall: print less during %doff 2022-08-11 17:04:44 +02:00
fang
cd0ea06ad4
gall: use a fully-formed wire when sending %cork
In response to clog notification from remote ames, we were sending a
%cork to clean up the flow. However, the wire we were using had the /sys
prefix already stripped off. Here, we put it back in.
2022-08-11 16:53:45 +02:00
fang
39cd895a55
gall: in +ap-doff, process oldest subs first
Start by killing subscription nonce 0, then work our way up instead of
down. We enhance the printf with a "total nonces" indicator so we can
still easily see the progress being made.
2022-08-10 22:51:38 +02:00
fang
8033fe760e
doff: improve generator interface slightly
No longer need to give units as named arguments, instead just the bare
values. The defaults get recognized as the "no filter" case.
2022-08-10 22:51:36 +02:00
fang
2fe27bd8d7
gall: simplify +ap-doff filter conditional 2022-08-10 22:25:01 +02:00
fang
04b7b86cae
gall: support %doff-ing specific apps and/or ships
This gives us more control over exactly which subscriptions get culled,
which is useful in debugging and targetted recovery scenarios.
2022-08-10 20:33:07 +02:00
Ted Blackman
6b836bb56d ames: fix no-op for messages on closing bones 2022-08-10 20:18:57 +03:00
Ted Blackman
20ccac22a2 ames: clean up closing bone check and printfs 2022-08-10 19:55:07 +03:00
Ted Blackman
9e47490c95 gall: fix %doff handling
Previous +ap-doff kicked the agent repeatedly.  We needed to kick
it only once.  Now publisher agents clear their incoming subscription
state without the subscriber making lots of new subscriptions because
of repeated kicking.
2022-08-10 19:48:39 +03:00
Ted Blackman
0baad53fb4 ames: drop pleas on dead bones 2022-08-10 19:47:59 +03:00
Ted Blackman
ef09595788 gall: update comment 2022-08-10 19:13:32 +03:00
Ted Blackman
543efac183 gall: kill old subscriptions on %doff (still has bug)
Squashed commit of the following:

commit 1e31ab96c14e7506d5cb746d90153cb5658df6e0
Author: Ted Blackman <ted@tlon.io>
Date:   Wed Aug 10 19:08:39 2022 +0300

    ames: revert prints on bad memos

commit c47f9c6053
Author: Ted Blackman <ted@tlon.io>
Date:   Wed Aug 10 18:44:56 2022 +0300

    Merge fix to +ap-kill-down and use that pattern in +mo-doff.

    This doesn't seem to work properly, but I'm not sure why so far.

commit e696816b8d
Merge: 4edb247cd7 a5f08643ff
Author: Ted Blackman <ted@tlon.io>
Date:   Wed Aug 10 18:29:42 2022 +0300

    Merge branch 'next/arvo' into ted/doff-revival

commit 4edb247cd7
Author: Ted Blackman <ted@tlon.io>
Date:   Sat Aug 6 00:09:04 2022 +0300

    ames,gall: fix lopsided bitt/boar state from old doffs

commit b21ffd9cfa
Merge: 7d532afaf8 8eb8a1da29
Author: Ted Blackman <ted@tlon.io>
Date:   Fri Aug 5 17:53:15 2022 +0300

    Merge branch 'next/arvo' into ted/kill-subs

commit 7d532afaf8
Author: Ted Blackman <ted@tlon.io>
Date:   Fri Aug 5 17:52:16 2022 +0300

    gall: add subscription nonce to %doff

commit f750de9aac
Merge: 38540658b5 aad5fa6fae
Author: Ted Blackman <ted@tlon.io>
Date:   Fri Aug 5 11:24:55 2022 +0300

    Merge branch 'next/arvo' into ted/kill-subs

commit 38540658b5
Author: fang <git@fang.io>
Date:   Thu Jul 28 21:10:57 2022 +0200

    gall: account for renaming of subscription state

commit c015dc8446
Merge: 7c222e4c60 731e27d5a1
Author: Zach Alberico <git@zalberico.com>
Date:   Thu Jul 28 10:14:24 2022 -0700

    Merge branch 'next/arvo' into ted/kill-subs

commit 7c222e4c60
Author: Ted Blackman <ted@tlon.io>
Date:   Thu Jul 28 14:01:00 2022 +0200

    hood: |doff generator

commit 8d00cf1bd1
Author: Ted Blackman <ted@tlon.io>
Date:   Thu Jul 28 13:21:45 2022 +0200

    gall: fix compile errors

commit 6a1fd360ff
Author: Ted Blackman <ted@tlon.io>
Date:   Thu Jul 28 13:01:16 2022 +0200

    gall: add %doff task to kill subscriptions
2022-08-10 19:09:47 +03:00
fang
a5f08643ff
Merge pull request #5932 from urbit/ted/ack-crash
ames: fix "ack crash"
2022-08-10 16:02:10 +02:00
fang
682dde904c
Merge pull request #5931 from urbit/m/gall-kill-down-accurately
gall: handle nonces in wires correctly
2022-08-10 00:04:10 +02:00
Ted Blackman
ce9f692ecd ames: clean up %cork plea handling
+on-plea gets called in two very different ways:
1) handling request from local vane to send %plea to peer
2) handling %cork request from another ship, which our local ames has %pass'ed
   to ourselves

In the second case, we shouldn't print misleadingly, or bind a duct in the ossuary.
2022-08-10 00:47:38 +03:00
Ted Blackman
2dc7171dfa ames: no-op on acks on corked bones 2022-08-10 00:44:54 +03:00
fang
db1e8d1b92
gall: explain reason for strange conditional 2022-08-09 21:36:08 +02:00
fang
52d8ef6a99
gall: initialize sub-nonce as 1 during upgrade
This matches the bunt of 1 for the new ship case. A nonce of 0 is
semantically mapped to old-style subscriptions.
2022-08-09 21:22:40 +02:00
fang
c2d77a5d47
gall: in/exclude the nonce from the wire as needed
+ap-nuke was not including the nonce, but should.
+ap-handle-peers was potentially including a zero nonce.

(The latter shouldn't have been possible, but there's a bug in +load
where sub-nonce.yoke gets initialized as 0 instead of 1.)
2022-08-09 21:21:10 +02:00
fang
0a3f542fcc
gall: refactor sub-wire-with-nonce construction
Into +ap-nonce-wire.
2022-08-09 21:20:24 +02:00
fang
1f30dccddf
gall: use correct wires in +ap-kill-down
For potentially-outgoing moves, we need to make sure the nonce is in the
wire so that it gets associated with the right instance of the
subscription.
2022-08-09 20:53:43 +02:00
fang
e396ddcdaa
gall: cork a subscription's ames flow on-kick
Gall tells ames to %cork flows for subscriptions it has closed.
Receiving a kick also closes a subscription, but gall wasn't issuing a
%cork in that case. We correct that here.

Inlines +mo-handle-ames-response's logic at its only callsite.
2022-08-08 22:21:34 +02:00
drbeefsupreme
2b7b3266ac clay: remove $dork
seems that this structure has been unused since
e75ab631a4 and confuses
newbies trying to figure out exactly what the commit
structure is (which is how I came across this)
2022-08-07 13:08:55 -04:00
Ted Blackman
da591a4078 ames: invert busted conditional in recork timer 2022-08-05 02:37:03 +03:00
Ted Blackman
56d4906a13 ames: try next recork on cork ack
Without this, a ship would send a cork on a max of one flow per
recork timer, which could take years to clear for some ships.
This starts a hot loop of trying the next cork once one gets
positively acked.
2022-08-05 01:35:34 +03:00
Ted Blackman
54cd1a5eca ames: simplify recork timer
The previous recork timer queued up %cork messages without sending them.
It also relied on making sure pump timers didn't get set for recork bones.
This was fragile.

The new design enqueues up to one new %cork message per ship during each
recork timer, based on the state of the flow.  If the flow is closing but
there are no outstanding messages in it, then it needs to be recorked.
Flows will be recorked in ascending numerical order by bone.
2022-08-05 01:13:21 +03:00
fang
9433d3354d
ames: unsent-fragments is a list, not a tree
Measure accordingly.
2022-08-03 21:03:49 +02:00
fang
7af527e605
ames: correctly measure queue size 2022-08-03 20:52:03 +02:00
fang
e6453bae3c
ames: more detailed "future msg" trace
This additional information may come in handy when debugging this crash
we shouldn't be seeing.
2022-08-03 20:46:54 +02:00
fang
e16c499724
ames: make recork timer faster
This will aid visibility and debugging. We'll probably want to make this
slower again later.
2022-08-03 20:33:04 +02:00
fang
7c01ee9b35
ames: account for corked flows during %stir
Also patches the behn scry in %stir handling to be correct for latest behn.
2022-08-03 19:37:53 +02:00
fang
b860bef066
ames: correctly avoid setting pump timer
The condition got butchered during refactor: instead of avoiding the creation
of pump timers during recork wake, it was setting them _exclusively_ during
recork wake.
2022-08-02 23:23:48 +02:00
Ted Blackman
e5e4c8602d ames: properly set recork flag in +on-wake 2022-08-02 23:15:43 +03:00
Ted Blackman
67efb2ad7c ames: don't start pump timers on recork 2022-08-02 23:03:34 +03:00
fang
7e71cbf61a
tests: temporarily disable ames comet flow test
This test started failing presumably somewhere during #5886. Testing
with a comet on the network, the test seems inaccurate: the comet can
communicate and be communicated to just fine.
2022-07-28 17:11:40 +02:00
fang
289fe5ef64
Merge branch 'next/arvo' into yu/gall-rq-global-cork-timer 2022-07-25 19:50:26 +02:00
yosoyubik
c69af12a6d gall: make spore-tag a @ud
TODO: still getting kiln: %base not installed
2022-07-18 13:49:16 +02:00
yosoyubik
a5aedaccc5 ames: delete naxplanation flows if bone is corked 2022-07-18 10:27:36 +02:00
drbeefsupreme
49420e2fe2 hoon: refactor %brcn %brpt optional arg parsing
this refactors the parser for %brcn and %brpt to separate the optional
argument(s) from the required argument(s).

also adds +blab, which allows for a minor refactor of a couple other
arms as well as being used for %brcn and %brpt
2022-07-17 17:18:38 -04:00
yosoyubik
35c6ac416e ames: fix predicate for detecting %cork acks 2022-07-16 07:40:05 +02:00
fang
cd3dc4bdb9
Merge pull request #5830 from urbit/m/aqua-mark
aqua: add %aqua-effect mark file
2022-07-15 20:17:01 +02:00
yosoyubik
c599e60c5b ames: add recork set 2022-07-15 16:45:32 +02:00
yosoyubik
8712804d7f gall: comment subscription kill 2022-07-14 07:23:39 +02:00
drbeefsupreme
304efe1f35 naive: uncomment tests for +test-rut 2022-07-13 11:23:46 -04:00
yosoyubik
d17fd7521a gall: use spore tag for +molt subscription killing
WIP: kiln crashes after upgrade with a ! kiln: %base not installed
2022-07-13 15:52:15 +02:00
Ted Blackman
1cb2aaabbc gall: fix +molt initialization 2022-07-13 15:52:07 +02:00
Ted Blackman
5f8378e1b7 gall: kill subscriptions after agents reload 2022-07-13 15:52:02 +02:00
yosoyubik
d9b7643b79 gall: fix condition to run +ap-kill-down 2022-07-13 15:51:46 +02:00
yosoyubik
4c8a4ecb0e gall: run +ap-kill-down only once 2022-07-13 15:51:38 +02:00
yosoyubik
354a914c82 gall: run +ap-kill-down on +molt 2022-07-13 15:51:28 +02:00
yosoyubik
a3518ef4d6 ames: add trace for %cork plea 2022-07-13 09:17:42 +02:00
bacwyls
49b837f5e8
eyre: fix for %trim bug - addendum
Broader, more direct solution.
2022-07-08 17:10:41 -07:00
bacwyls
c8fafa53bd
eyre: fix for %trim bug
Problem:
by-channel has its own copy of server-state from line 2182. discard-channel returns an altered state, with one channel removed from the state of by-channel.
but the state of by-channel isn't changing with each iteration, so |trim is only removing one channel per invocation.

Solution:
update by-channel on each iteration.
2022-07-08 15:14:13 -07:00
yosoyubik
34a7496720 ames: clean up nack flows after a cork 2022-07-08 07:29:04 +02:00
fang
283e5ad1db
Revert "gall: exclude from traces"
This reverts commit b1b422ce05.
2022-07-07 16:24:03 +02:00
fang
a1b3348cdf
Revert "clay: render syntax errors at end of file"
This reverts commit 7a110db60d.
2022-07-07 16:21:43 +02:00
yosoyubik
ca1b586a46 ames: init cork timer on larval +take 2022-07-07 11:35:28 +02:00
yosoyubik
d4d443db13 ames: remove cork wire from state 2022-07-07 09:20:57 +02:00
Philip Monk
1bc0d0cd8e gall: don't reload if code is unchanged 2022-07-07 00:12:27 -07:00
Philip Monk
a4aa835fe1 clay: add %rein move to config agents 2022-07-06 23:09:43 -07:00
Philip Monk
56ed49578f clay: respect rein state 2022-07-06 22:26:34 -07:00
Philip Monk
71ecde32e1 clay: keep marks warm 2022-07-06 18:12:59 -07:00
Philip Monk
eb1e7dd173 clay: enable goad on every commit 2022-07-06 16:56:38 -07:00
drbeefsupreme
c29512308f doccords: deco remove double comment 2022-07-06 18:59:01 -04:00
drbeefsupreme
73c0222d2e doccords: deco convention for +$ arms 2022-07-06 18:22:21 -04:00
drbeefsupreme
ef9297cfd7 doccords: these <-> other locations 2022-07-06 17:43:41 -04:00
drbeefsupreme
b7412d939c doccords: lib/deco remove informal comment 2022-07-06 17:31:55 -04:00
drbeefsupreme
4dd8b4d043 doccords: change :: in lib/deco to :> 2022-07-06 17:30:52 -04:00
drbeefsupreme
862f6cc899 doccords: update language in lib/deco 2022-07-06 17:28:14 -04:00
drbeefsupreme
948bd1e185 doccords: adds batch comment examples to lib/deco 2022-07-06 17:23:25 -04:00
drbeefsupreme
37343b6d87 doccords: add sample library lib/deco.hoon 2022-07-06 17:20:21 -04:00
drbeefsupreme
938dc8cfe4 dojo: reverse doccords query ordering 2022-07-06 17:19:44 -04:00
drbeefsupreme
27135f1bb5 dprint: links -> cuff 2022-07-06 16:31:07 -04:00
drbeefsupreme
1cd95a9ceb hoon: add +$ cuff (list link)
makes doccords stuff more readable. also changes the (list link) in
$help to cuff
2022-07-06 16:30:24 -04:00
drbeefsupreme
a4ca51009a dprint: fix syntax and test suite for new parser 2022-07-06 16:21:13 -04:00
drbeefsupreme
de19456f82 hoon: revamp doccords parsing for batch comments
this commit replaces the previous intermediate parsing structure, $whit,
with a new one better suited for batch comments and taking into account
that {#  %label} syntax is no longer being used anywhere. basically,
this makes it so that all doccords are batch comments, where if they are
preceded by a (list link) then they will try to attach to the given
link (only utilizes first link for now), and a blank link means it will
try to attach to the following hoon or spec
2022-07-06 16:17:54 -04:00
Philip Monk
ddf13b3fb8 clay: make upgrade compile 2022-07-06 11:51:06 -07:00
fang
ddf3520648
hood: re-patch |rein
Essentially reimplements #5863 in the generator, instead of the library.
2022-07-06 20:18:45 +02:00
fang
c437f1cdbd
Merge pull request #5855 from urbit/m/gall-quieter
gall: exclude from traces
2022-07-06 18:48:55 +02:00
Ted Blackman
0d4ce15780 clay: add .liv and .ren state to dome 2022-07-06 16:41:20 +01:00
yosoyubik
e366e55dbc ames: add global daily timer for pending corks
WIP compiles and upgrades, and the timer gets properly reset
but untested for actual re-subscriptions with old publishers
2022-07-06 17:00:35 +02:00
yosoyubik
608aba2a87 gall: handle subscriber-side %cork
this also enables increasing sub-nonces for every new subscription
TODO: create one global cork timer for all peers
2022-07-06 14:44:20 +02:00
Ted Blackman
1cda56673f gall: idle agents not in %load move 2022-07-06 12:37:17 +01:00
Philip Monk
d4f02e0a57 clay: add global %goad logic 2022-07-06 03:32:15 -07:00
yosoyubik
f3a60aef14 gall: don't send %cork when leaving a subscription
This is a temporary fix, and first part of the gall-request-queue-fix
release in two stages. This gives a publisher ship the ability to
understand a %cork and handle it properly, but no subscriber will
be sending %corks at this stage when leaving a subscription.

We still add a nonce to all subscription wires but it doesn't
increment it when resubscribing, allowing flows to be reused.

Tested locally with toy pub/sub agents and Group join/leaving
2022-07-06 10:59:08 +02:00
yosoyubik
76919ce07c ames: resend %cork after a naxplanation in one day 2022-07-06 10:52:19 +02:00
Philip Monk
6d321c60cb clay, gall: move agent build management to clay 2022-07-06 00:51:11 -07:00
yosoyubik
850de0bfd3 Revert "gall: run +ap-kill-down on +molt"
This reverts commit 2107240962.
2022-07-06 09:12:30 +02:00
yosoyubik
675cf45171 Revert "gall: run +ap-kill-down only once"
This reverts commit cb5893ac05.
2022-07-06 09:12:10 +02:00
yosoyubik
3560f6b7e3 Revert "gall: fix condition to run +ap-kill-down"
This reverts commit e5c86886e4.
2022-07-06 09:11:22 +02:00
Sidnym Ladrut
13b8b337a0 dojo: re-add support for /=, /% runes 2022-07-06 00:29:23 -05:00
fang
6eece773ba
Merge pull request #5857 from urbit/jb/behn-fix1
behn: fix timers not firing
2022-07-05 16:00:31 +02:00
Sidnym Ladrut
3e22ee68e9 dojo: improve ford rune support for cable expressions 2022-07-02 18:04:54 -05:00
Sidnym Ladrut
8a017ce308 dojo: re-add support for /+, /- ford runes 2022-07-01 23:39:37 -05:00
drbeefsupreme
b80590fd05 hoon: remove _docs-engine
thought this would play a larger role than it did. currently it is unused
2022-07-01 17:47:18 -04:00
drbeefsupreme
274bc167d0 dprint: remove erroneous sigpam 2022-07-01 17:11:38 -04:00
drbeefsupreme
2028ae9397 dprint: batch comment tests, more refactoring 2022-07-01 13:48:48 -04:00
drbeefsupreme
3bfad4807a hoon: fix batch comment parser
the merge broke it i guess
2022-07-01 12:14:47 -04:00
drbeefsupreme
37ce546dd4 dprint: simplify arm doc testing 2022-07-01 10:39:01 -04:00
yosoyubik
ea4a31558f ames: ack last fragment from closing bone 2022-07-01 09:59:24 +02:00
Philip Monk
89b9977ac8 azimuth: fetch snapshot on boot
Previously, the initial Azimuth snapshot was stored in Clay and shipped
in the pill.  This causes several problems:

- It bloats the pill
- Updating the snapshot added large blobs to Clay's state.  Even now
  that tombstoning is possible, you don't want to have to do that
  regularly.
- As a result, the snapshot was never updated.
- Even if you did tombstone those files, it could only be updated as
  often as the pill
- And those updates would be sent over the network to people who didn't
  need them

This moves the snapshot out of the pill and refactors Azimuth's
initialization process.  On boot, when app/azimuth starts up, it first
downloads a snapshot from bootstrap.urbit.org and uses that to
initialize its state.  As before, updates after this initial snapshot
come from an Ethereum node directly and are verified locally.

Relevant commands are:

- `-azimuth-snap-state %filename` creates a snapshot file
- `-azimuth-load "url"` downloads and inits from a snapshot, with url
  defaulting to https://bootstrap.urbit.org/mainnet.azimuth-snapshot
- `:azimuth &azimuth-poke-data %load snap-state` takes a snap-state any
  way you have it

Note the snapshot is downloaded from the same place as the pill, so this
doesn't introduce additional trust beyond what was already required.
When remote scry is released, we should consider allowing downloading
the snapshot in that way.
2022-06-30 23:22:50 -07:00
drbeefsupreme
5710826cd4 dprint: fix test library argument 2022-06-30 17:18:09 -04:00
drbeefsupreme
97d183b7af Merge branch 'master' into jon/doccords 2022-06-30 17:17:15 -04:00
drbeefsupreme
b3e6f82499 dojo: change doccords syntax to be path-like
using col as a seperate made it look like a bunch of =<, which doesn't
make sense for e.g. pritning chapters. paths aren't quite right either,
so we don't use +stap, and just want identifiers separated by fas
without any leading fas
2022-06-30 17:13:07 -04:00
drbeefsupreme
b4d04444cd dprint: add missing doccords 2022-06-30 16:58:45 -04:00
drbeefsupreme
0f8f90c1fd dprint: simplify type to item interface
shouldn't need to surface recursion to the developer
2022-06-30 16:56:04 -04:00
drbeefsupreme
69b06e0ac3 dprint: add identifying glyphs to various items 2022-06-30 16:27:06 -04:00
drbeefsupreme
4b8cdd6f83 dprint: easier to read style changes 2022-06-30 15:14:56 -04:00
yosoyubik
e5c86886e4 gall: fix condition to run +ap-kill-down 2022-06-30 17:44:11 +02:00
drbeefsupreme
5b65288268 dprint: add styled text first run
mostly just to get something working, next i will clean up syntax
2022-06-30 11:39:06 -04:00
yosoyubik
a967b42c30 ames: print bone if "hear last in-progress" 2022-06-30 17:12:07 +02:00
yosoyubik
cb5893ac05 gall: run +ap-kill-down only once 2022-06-30 17:06:22 +02:00
yosoyubik
2107240962 gall: run +ap-kill-down on +molt 2022-06-30 15:57:02 +02:00
fang
ad6a5acfbc
Merge branch 'master' into next/arvo 2022-06-30 12:59:41 +02:00
yosoyubik
b0766c2f53 ames: remove misleading trace printf 2022-06-30 10:46:02 +02:00
yosoyubik
27ac0b601e ames: use %$ as recipient vane for %corks 2022-06-30 10:18:37 +02:00
drbeefsupreme
72dec146b4 dprint: update default core arm comment syntax 2022-06-28 13:30:40 -04:00
drbeefsupreme
77b5c736aa hoon: fix batch comment parsing for ++ $ arms
comments for ++  $  arms are set using four aces
2022-06-28 13:29:42 -04:00
drbeefsupreme
8f48f08f1a dprint: change to batch comment syntax 2022-06-28 12:12:03 -04:00
drbeefsupreme
efe01b815a hoon: batch comment doccords inside of cores
changes $whit to have a (unit link) instead of (unit term). this holds
the identifier for where a comment is supposed to go. changes to parsers
in docs:vast to accomodate this.

this only allows for batch comments written for arms within a given
core. someday, the feature should allow you to write comments
virtually anywhere. the (unit link) in $whit should become a (unit (list
link)) to accommodate this
2022-06-28 12:12:03 -04:00
drbeefsupreme
8cd919b936 dojo: ?? pattern matches on %hint types 2022-06-28 11:31:22 -04:00
yosoyubik
17d52b8535 ames: handle bounce %cork from old publisher
Because the publisher will send the cork plea back to the subscriber on
the next bone, we are not able to know the bone for the original cork.
To handle it, we add the cork bone to the plea path

still wip: it keeps resending the cork plea faster than its ~h1 timer
2022-06-28 12:48:07 +02:00
yosoyubik
070d0a7d4b Merge branch 'jb/behn-fix1' into yu/gall-rq-wire-ames-flow-kill 2022-06-28 10:47:50 +02:00
yosoyubik
7de9c72f36 ames: add rift when inserting new peer state 2022-06-27 13:55:07 +02:00
pkova
7e74d44054 dns: transfer ship.arvo.network domains from ~zod to ~deg 2022-06-26 00:24:20 +03:00
drbeefsupreme
8f946ed414 dojo: print %help hints with ?? 2022-06-24 13:55:09 -04:00
drbeefsupreme
941ff18d9b hoon: refactor doccord parsing for +tall and +till 2022-06-24 12:30:52 -04:00
drbeefsupreme
6f66a6d7fd pprint: add %dict tag 2022-06-22 15:47:08 -04:00
drbeefsupreme
552b8e9e94 hoon: spec doccord parsing, refactor +till +tall 2022-06-22 15:46:11 -04:00
drbeefsupreme
d0b8d284ce hoon: add %dict tag to %spec for doccords 2022-06-22 15:45:40 -04:00
fang
981bc796d7
Merge pull request #5841 from dnmfarrell/dnmfarrell/arvo-dojo-dont-crash-set-beak
dojo: setting eny/now/our shouldn't crash dojo
2022-06-18 14:25:04 +02:00
Joe Bryan
244961ed39 test: removes debugging comments from %behn unit tests 2022-06-17 22:24:24 -04:00
Joe Bryan
6b99b154d6 behn: cleans up comments 2022-06-17 22:20:16 -04:00
Joe Bryan
1b6d4f0fc5 behn: refactor to use +abet pattern 2022-06-17 10:27:27 -04:00
Joe Bryan
5482d3ff93 behn: emit %doze on any rescheduling of the next timer 2022-06-17 10:27:27 -04:00