core-lightning/lightningd
Rusty Russell 16d5015d56 lightningd: fix shutdown with unconfirmed channel.
We free the peers explicitly, but we don't free the unconfirmed channel:
the result is that it gets freed twice.

The workaround is to free the unconfirmed channel explicitly, but really
the peer should be tal_link'ed as it's basically a reference counted
structure.

1.974911451 lightningd(17906):INFO: 03b4bca72572889d4b44cd0f194f73d54972af367e1917579283122ee10fa05f54 chan #1: Owning subdaemon lightning_openingd died (62464)
1.980118094 lightningd(17906):BROKEN: FATAL SIGNAL 6
1.980150447 lightningd(17906):BROKEN: backtrace: common/daemon.c:42 (crashdump) 0x432ba0
1.980161268 lightningd(17906):BROKEN: backtrace: (null):0 ((null)) 0x7faeb18ff4af
1.980167045 lightningd(17906):BROKEN: backtrace: (null):0 ((null)) 0x7faeb18ff428
1.980171271 lightningd(17906):BROKEN: backtrace: (null):0 ((null)) 0x7faeb1901029
1.980175847 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:98 (call_error) 0x47543e
1.980181814 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:170 (check_bounds) 0x4755fb
1.980188065 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:180 (to_tal_hdr) 0x475649
1.980193756 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:504 (tal_free) 0x47600d
1.980199402 lightningd(17906):BROKEN: backtrace: lightningd/peer_control.c:118 (delete_peer) 0x423990
1.980205498 lightningd(17906):BROKEN: backtrace: lightningd/opening_control.c:574 (destroy_uncommitted_channel) 0x419df3
1.980212380 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:240 (notify) 0x4757b0
1.980218052 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:400 (del_tree) 0x475c61
1.980223398 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:511 (tal_free) 0x476093
1.980229174 lightningd(17906):BROKEN: backtrace: lightningd/opening_control.c:549 (opening_channel_errmsg) 0x419d1a
1.980236227 lightningd(17906):BROKEN: backtrace: lightningd/subd.c:590 (destroy_subd) 0x42cf43
1.980242348 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:240 (notify) 0x4757b0
1.980247771 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:400 (del_tree) 0x475c61
1.980252814 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:410 (del_tree) 0x475cb1
1.980258356 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:410 (del_tree) 0x475cb1
1.980263311 lightningd(17906):BROKEN: backtrace: ccan/ccan/tal/tal.c:511 (tal_free) 0x476093
1.980269189 lightningd(17906):BROKEN: backtrace: lightningd/lightningd.c:412 (main) 0x4144ed

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-23 20:18:15 +00:00
..
test openingd: ensure that initial channel can cover fees and reserve. 2018-04-05 19:07:23 +02:00
.gitignore handshaked: remove. 2017-10-20 18:31:32 +02:00
bitcoind.c Support debugging with lldb 2018-04-15 17:42:24 +02:00
bitcoind.h Add --bitcoin-rpcport option to pass to bitcoin-rpc 2018-03-25 23:17:36 +02:00
build_utxos.c Remove include in file foo.c that is already included in foo.h 2018-03-25 23:54:21 +00:00
build_utxos.h build_utxos: fix weight calculation, and make more accurate. 2017-12-20 12:56:15 +01:00
chaintopology.c topo: Remove in-memory txs from the block struct 2018-04-13 00:04:37 +02:00
chaintopology.h topo: Remove in-memory txs from the block struct 2018-04-13 00:04:37 +02:00
channel.c lightningd: --dev-no-reconnect needs to always suppress reconnection. 2018-04-23 20:18:15 +00:00
channel.h wallet: Add msatoshi_to_us_min and msatoshi_to_us_max statistics for channels. 2018-04-05 19:01:53 +02:00
channel_control.c lightningd: re-allow closing negotiation when CLOSINGD_COMPLETE 2018-04-23 20:18:15 +00:00
channel_control.h channeld: don't do explicit state update. 2018-04-23 20:18:15 +00:00
channel_state.h channel_states: fold all the ONCHAIND states into one. 2018-02-23 18:02:00 +01:00
closing_control.c lightningd: re-allow closing negotiation when CLOSINGD_COMPLETE 2018-04-23 20:18:15 +00:00
closing_control.h lightningd: re-allow closing negotiation when CLOSINGD_COMPLETE 2018-04-23 20:18:15 +00:00
connect_control.c Reduce variable scopes 2018-03-26 01:31:21 +00:00
connect_control.h lightningd/peer_control: reorder, move more functions out. 2018-02-20 22:36:21 +01:00
dev_ping.c lightningd/json: Move json helpers specific for lightningd to new module. 2018-03-19 00:27:55 +00:00
gossip_control.c gossipd: finish startup before master prints that it's ready. 2018-04-23 20:18:15 +00:00
gossip_control.h gossip: Add function to notify gossipd about an outpoint spend 2018-03-30 16:35:00 +02:00
gossip_msg.c change spaces to tabs, align function parameters 2018-04-21 15:55:00 +02:00
gossip_msg.h jsonrpc: Return the channel capacity for listchannels 2018-03-12 22:34:51 +00:00
hsm_control.c utils: remove tal_tmpctx altogether, use global. 2018-03-16 00:16:10 +00:00
hsm_control.h lightningd/hsm_control: use a simple fd for HSM. 2017-06-27 10:25:53 +09:30
htlc_end.c Remove unused parameter ptr in corrupt(const void *ptr, ...) 2018-02-22 10:46:30 +01:00
htlc_end.h htlc: keep channel pointer, not peer pointer. 2018-02-14 11:31:58 +01:00
invoice.c bolt11: allow multiple fallback addresses. 2018-04-06 14:26:53 +02:00
invoice.h invoices: Extensive reorganization of invoice system. 2018-01-16 13:03:54 +01:00
json.c pay: Also record how much we actually ended up sending. 2018-03-26 05:01:49 +00:00
json.h Use expected LIGHTNING_DIR_FILE_H define 2018-03-25 23:54:21 +00:00
jsonrpc.c Reduce variable scopes 2018-03-26 01:31:21 +00:00
jsonrpc.h lightningd/json: Move json helpers specific for lightningd to new module. 2018-03-19 00:27:55 +00:00
jsonrpc_errors.h Use expected LIGHTNING_DIR_FILE_H define 2018-03-25 23:54:21 +00:00
lightningd.c lightningd: fix shutdown with unconfirmed channel. 2018-04-23 20:18:15 +00:00
lightningd.h json_fundchannel: fix release vs connect/nongossip race. 2018-04-23 20:18:15 +00:00
log.c common/daemon: common routines for all daemons. 2018-04-03 14:03:28 +02:00
log.h common/daemon: common routines for all daemons. 2018-04-03 14:03:28 +02:00
log_status.c tools/generate-wire.py: remove length argument from fromwire_ routines. 2018-02-20 22:36:21 +01:00
log_status.h status: add multiple levels of logging. 2018-02-07 00:46:49 +00:00
Makefile common/daemon: common routines for all daemons. 2018-04-03 14:03:28 +02:00
memdump.c memdump: fix overzealous assertions from b857b2e843 2018-03-16 00:16:10 +00:00
netaddress.c lightningd: remove ltmp context now we have tmpctx. 2018-03-16 00:16:10 +00:00
netaddress.h wireaddr: add ip[:port] parsing 2017-12-21 09:56:20 +00:00
onchain_control.c txwatch: Switch to passing only txid into the depth callbacks 2018-04-13 00:04:37 +02:00
onchain_control.h txwatch: remove unused callback arg, hide struct definitions. 2018-02-20 22:36:21 +01:00
opening_control.c json_fundchannel: fix release vs connect/nongossip race. 2018-04-23 20:18:15 +00:00
opening_control.h json_fundchannel: fix release vs connect/nongossip race. 2018-04-23 20:18:15 +00:00
opt_time.c Remove unused functions not covered by unit tests 2018-03-26 23:35:56 +00:00
opt_time.h Remove unused functions not covered by unit tests 2018-03-26 23:35:56 +00:00
options.c common/json_escaped: new type which explicitly notes a string is already JSON. 2018-03-26 00:20:53 +00:00
options.h lightningd: --deprecated-api option to turn off deprecated APIs. 2018-01-19 22:23:45 +00:00
pay.c wallet, payalgo: Save detail of payment failures for later reporting. (#1345) 2018-04-16 15:29:40 +02:00
pay.h pay: Let sendpay modify the recorded msatoshi of payments. 2018-03-30 15:40:32 +02:00
payalgo.c payalgo: Describe maxdelay argument of pay. 2018-04-17 17:29:36 +02:00
payalgo.h payalgo: New file for pay command. 2018-02-16 13:08:29 +01:00
peer_control.c lightningd: re-allow closing negotiation when CLOSINGD_COMPLETE 2018-04-23 20:18:15 +00:00
peer_control.h lightningd: --dev-no-reconnect needs to always suppress reconnection. 2018-04-23 20:18:15 +00:00
peer_htlcs.c wallet: Add msatoshi_to_us_min and msatoshi_to_us_max statistics for channels. 2018-04-05 19:01:53 +02:00
peer_htlcs.h lightningd/peer_control: reorder, move more functions out. 2018-02-20 22:36:21 +01:00
subd.c lightningd/subd.h: Add missing wire/wire.h. 2018-03-26 01:09:59 +00:00
subd.h lightningd/subd.h: Add missing wire/wire.h. 2018-03-26 01:09:59 +00:00
watch.c topo: Remove in-memory txs from the block struct 2018-04-13 00:04:37 +02:00
watch.h topo: Remove in-memory txs from the block struct 2018-04-13 00:04:37 +02:00