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
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
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
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
Ted Blackman
d8df2787a0
gall: %rake task to clean up dead %leave's
2022-08-18 20:34:42 +03:00
Philip Monk
50c22343b6
clay: wip
2022-08-16 20:33:25 -08: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
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
fang
350f33d6ba
Merge branch 'next/arvo' into ted/doff-6
2022-08-11 21:06:30 +02: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
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
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
yosoyubik
35c6ac416e
ames: fix predicate for detecting %cork acks
2022-07-16 07:40:05 +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
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
Philip Monk
ddf13b3fb8
clay: make upgrade compile
2022-07-06 11:51:06 -07: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