Commit Graph

2950 Commits

Author SHA1 Message Date
fang
1e8d6651ac
eyre: update tests to match fact-only clogs
Watch-acks no longer add to the clog counter, so we need to trigger an
additional fact to reach the test case we care about.
2020-11-10 23:12:14 +01: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
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
37c0383a79
Merge pull request #3864 from urbit/m/ream-to-zapcom
clay: replace ream with nouns and !, zapcom
2020-11-03 21:55:49 +01:00
fang
acf0f8d0e1
clay: %limb instead of %wing 2020-11-03 16:35:28 +01:00
pkova
b114956870 zuse: improve url extension parsing
Previously extensions ending with numbers such as .woff2 were not recognized.
2020-11-03 15:54:10 +02: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
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
fang
82dcad4c59
zuse: if empty, unpack header into empty list
Previously, would give a ~[{}] for the '' header. This makes it parse
that as "no entries" rather than "one entry without data".
2020-10-29 14:19:57 +01:00
Philip Monk
f548deaff6
Merge pull request #3787 from urbit/philip/symbols
hoon: update glyph names
2020-10-26 18:06:53 -07: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
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
Philip Monk
fc15f0d735
Merge branch 'pr' into HEAD 2020-10-22 20:47:53 -07:00
Matilde Park
6a97ebb54f Merge branch 'release/next-userspace' 2020-10-22 22:21:18 -04:00
Matilde Park
1930a75d73 glob: update to 0v2.1vtfh.0l23v.30s7f.n57l9.dpjvi 2020-10-22 22:19:58 -04:00
Joe Bryan
da928bed10 ames: updates forward-lane scry-handling to match +send-blob 2020-10-22 17:37:46 -07:00
matildepark
0c87a44e97
Merge pull request #3747 from urbit/lf/remove-channel-generator
metadata-store: add |remove generator
2020-10-21 17:18:54 -04:00
fang
e3dcfc6372
release: urbit-os-v1.0.61 2020-10-21 12:43:40 +02:00
L
c187c591ba
Merge pull request #3738 from urbit/la/spider-http
threads: make spider HTTP threads compatible with dojo threads, and fix the %graph-leave thread
2020-10-20 12:55:32 -05: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
Liam Fitzgerald
2ca8f41288 metadata-store: add |remove generator 2020-10-19 12:45:20 +10: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
0b331a2ca9
eyre: update tests to match recent changes 2020-10-18 17:00:02 +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
matildepark
782ea1a6e7
Merge pull request #3696 from urbit/lf/bundle-cleanup
interface: various bundle size optimisations
2020-10-16 18:32:07 -04: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
Logan Allen
926c9975c2 graph-leave: fixed leave thread to function properly 2020-10-16 12:10:07 -05:00
Logan Allen
ace6a41e9e graph-threads: update to work with dojo and http 2020-10-16 10:42:31 -05:00
Logan Allen
c9cb97d476 spider: update http handler to be compatible with dojo 2020-10-16 10:42:06 -05:00
Philip Monk
8d0cfd13b7
glob: update to 0v1.hc18i.ms0ac.qi9qj.geopu.sutri 2020-10-15 16:10:02 -07:00
Philip Monk
7e5c722c8f
Merge branch 'philip/link-upgrade' into release/next-sys 2020-10-15 14:34:05 -07:00
Philip Monk
ff0214e8ed
Merge remote-tracking branch 'origin/release/next-userspace' into philip/link-upgrade 2020-10-15 14:32:42 -07:00
Philip Monk
d948d22a78
Merge remote-tracking branch 'origin/release/next-hoon' into philip/link-upgrade 2020-10-15 14:32:34 -07: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
Philip Monk
bfa94b6c3b
link-store: throw away state if it's stale cards
It's burdensome to upgrade cards and vases, and in practice they will be
stale anyway, so we throw them away.
2020-10-14 21:59:37 -07:00
Philip Monk
f295cd714f
Merge remote-tracking branch 'origin/la/hack-to-move-scry' into release/next-sys 2020-10-14 19:30:54 -07:00
Philip Monk
77b33632a6
Merge remote-tracking branch 'origin/master' into release/next-sys 2020-10-14 19:26:33 -07:00
Joe Bryan
efac8d6133
Merge pull request #3644 from urbit/jb/retime
arvo: restore :time app
2020-10-14 12:55:21 -07:00
Logan Allen
2f9a7c9c68 chat-hook: hack to move scry to a new event to fix +on-load 2020-10-14 14:20:48 -05:00
Liam Fitzgerald
f14c0ee19e interface, glob: serve source maps externally 2020-10-14 13:26:40 +10:00
Joe Bryan
9d5119b33f hoon: adds hints for likely-to-be-jetted list/treap/parser arms 2020-10-13 18:38:09 -07:00
Joe Bryan
5edaf634bc
Merge pull request #3691 from urbit/jb/need-have
hoon: enables need/have type printfs on nest-fail
2020-10-13 18:33:26 -07:00
Matilde Park
65bb8a0fb5 glob: update to 0v1.bn7am.9sl00.vfh1o.uvsuf.dn9b7 2020-10-13 21:07:18 -04:00
matildepark
5861e38392
Merge pull request #3671 from urbit/lf/channel-js-fixes
channel.js: eagerly ack subscription updates
2020-10-13 18:54:10 -04:00