Commit Graph

16532 Commits

Author SHA1 Message Date
Joe Bryan
2f6d512248
Merge pull request #2101 from urbit/http-respond-safe
vere: fix use-after-free in http responses
2019-12-16 11:46:58 -08:00
Joe Bryan
4691fa2a8d vere: plugs leak of http response headers 2019-12-14 23:26:24 -08:00
Joe Bryan
01470355d1 vere: fix use-after-free in closing/canceling http request 2019-12-14 18:25:43 -08:00
Joe Bryan
d5949f2358 vere: fix use-after-free when sending http response 2019-12-14 18:25:39 -08:00
Philip Monk
bfd2e533a1
goad: make startup resilient to errors
By not running the risky %goad card in on-init.  Also includes some qol
fixes.
2019-12-13 18:50:26 -08:00
Philip Monk
9aa3591e91
Merge branch 'philip/goad'
* philip/goad:
  goad: recompile apps after changes to /sys

Signed-off-by: Philip Monk <phil@pcmonk.me>
2019-12-13 17:21:31 -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
07e2f20f57
Merge branch 'fix-lr-jet' (#2089)
* fix-lr-jet:
  hoon: fix typo in +put:in

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-13 21:05:34 +08:00
Elliot Glaysher
44f6a90a4c
hoon: fix typo in +put:in
This fixes +put:in so that it works without the correct jet.  There's a
mismatch where the hoon code is wrong and the jet is correct, so that
when we try to run this on alternate interpreters which may not have the
+in jets, things won't work.
2019-12-13 21:00:21 +08:00
Jared Tobin
aff97bf150
Merge branch 'm/eth-apps' (#2084)
* origin/m/eth-apps:
  claz: clean up head of app file
  static gall: update claz
  ethio: add +get-next-nonce
  zuse: update %eth-get-transaction-count
  zuse: include all relevant azimuth addresses
  ethio: implement +batch-read-contract-strict
  ethio: fail request-rpc more properly
  static gall: update gaze

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 16:27:04 +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
c500e03b81
hood: |ames-sift generator to trace by ship 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
2cf8bb215d
Merge branch 'urbit-ID' (#2077)
* origin/urbit-ID:
  updates to 'Urbit identity' language in comet boot message

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:52:07 +08:00
Jared Tobin
15c929077d
Merge branch 'newt-plug-leak' (#2076)
* origin/newt-plug-leak:
  newt: free completed message buffer

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:51:43 +08:00
Jared Tobin
1a88edeb37
Merge branch 'vere-build-tests' (#2075)
* origin/vere-build-tests:
  vere: updates the test build targets to be generic

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:51:19 +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
3888eabaa8
Merge branch 'ames-set-port' (#2057)
* origin/ames-set-port:
  ames: refactors udp init() and bind()
  ames: honor -p for galaxies, with warning
  ames: adds port printfs for all ships
  ames: honor -p for non-galaxies

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:49:34 +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
Jared Tobin
5febd033cf
Merge branch 'link-full' (#1970)
* origin/link-full:
  link-server-hook: disable verb by default
  link: make network comms work
  link: add minimal link-server-hook and link-webext
  server: properly defined request-line type
  link: social bookmarking core implementation
  group-store: create, add, remove generators

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:45:41 +08:00
Fang
8857213000
claz: clean up head of app file 2019-12-11 23:00:49 +01:00
Fang
864b19e075
link-server-hook: disable verb by default 2019-12-11 21:16:20 +01:00
Fang
2048f7ab9e
link: make network comms work
This resolves a number of issues that were keeping communications with
foreign ships from working.

- there was no link-update mark
- there was no +on-arvo handling in link-listen-hook
- link-listen-hook was subscribing to the non-existent "link-hook"
- link-proxy-hook permission check was looking at a wrong path

Also makes link-listen-hook aware that subscriptions might get rejected
because of permissions, so that it ignores failed subscriptions instead
of being loud about it.
2019-12-11 20:49:50 +01:00
Fang
3a859ef585
link: add minimal link-server-hook and link-webext
link-server-hook exposes (parts of) the link-store over eyre, on the
condition that the client is authenticated as the host ship.

link-webext as committed is a very minimal web extension. When its
toolbar button is clicked, it saves the current webpage to /private
in the link-store.
In the future, this should support choosing a target to save to,
highlighting already-saved pages, and many other features.
2019-12-11 20:49:50 +01:00
Fang
25d390d6b1
server: properly defined request-line type 2019-12-11 20:49:49 +01:00
Fang
a95449cc64
link: social bookmarking core implementation
Stores URLs and their titles for the local ship. Can listen to
"submissions" on foreign ships.

Has a primitive perspective on groups, treating them as
always-interesting. Auto-subscribes to all ships in all groups.

Foreign communications untested.
2019-12-11 20:49:49 +01:00
Fang
a272f7c868
group-store: create, add, remove generators 2019-12-11 20:49:48 +01:00
Fang
fab9097110
static gall: update claz
Largely one-to-one port feature-wise.

Support for document polls was added.

Command preparation and verification got split out into
/ted/claz/prep-command, and got a dedicated +prep-result type to
facilitate future support for more complex preparation steps.
2019-12-11 17:32:33 +01:00
Fang
965529525b
ethio: add +get-next-nonce 2019-12-11 17:32:33 +01:00
Fang
a16fbd20ae
zuse: update %eth-get-transaction-count
It apparently now requires a second argument indicating the block to get
the result at.
2019-12-11 17:32:33 +01:00
Fang
f5ea5a4401
zuse: include all relevant azimuth addresses 2019-12-11 17:11:47 +01:00
Fang
9a708fb8f8
ethio: implement +batch-read-contract-strict
And re-implement +read-contract to use that under the hood.
2019-12-11 17:11:47 +01:00
Fang
abe92e289a
ethio: fail request-rpc more properly
strand-fail instead of crashing.
2019-12-11 17:11:47 +01:00
Fang
67825a08d1
static gall: update gaze
Noteworthy changes:
- split block timestamp requests into smaller batches
- track invite events
- improved debug pokes
2019-12-11 17:11:46 +01:00
Philip Monk
3b41a8be15
gall: no-op on duplicate watch-ack
fixes #2070
2019-12-10 18:49:50 -08:00
Philip Monk
0c95c2d4dd
Merge pull request #2078 from urbit/philip/ames-forward
ames: don't forward up the sponsorship chain
2019-12-10 16:51:52 -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
Robert
220fca335b updates to 'Urbit identity' language in comet boot message 2019-12-10 13:32:57 -08:00
Joe Bryan
1f87417008 newt: free completed message buffer 2019-12-10 12:41:06 -08:00
Joe Bryan
50db1149eb vere: updates the test build targets to be generic 2019-12-10 11:27:57 -08:00
Jared Tobin
853e33d88a
Merge branch 'newt-test' (#2069)
* origin/newt-test:
  vere: adds tests for newt ipc framing, fixes infinite loop

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 19:40:39 +08:00
Jared Tobin
733d7fd7e5
Merge branch 'philip/leave' (#2068)
* philip/leave:
  gall: remove message type from wire

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 19:34:30 +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
Jared Tobin
d21310ace8
Merge branch 'la-unread' (#2064)
* origin/la-unread:
  chat-js: fix unread counts and indentation

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 17:05:43 +08:00
Jared Tobin
3f50a11e48
Merge branch 'philip/drum' (#2063)
* origin/philip/drum:
  drum: revert tang ordering change

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 16:26:49 +08:00
Jared Tobin
69c2f5517c
Merge branch 'malloc-print' (#2061)
* origin/malloc-print:
  vere: print arg to c3_malloc() et. al. on failure

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 16:19:11 +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