diff --git a/gossipd/gossip_store.c b/gossipd/gossip_store.c index d6b218e17c7e..aa7b8269196f 100644 --- a/gossipd/gossip_store.c +++ b/gossipd/gossip_store.c @@ -527,7 +527,12 @@ u64 gossip_store_set_flag(struct gossip_store *gs, if (!check_msg_type(gs, offset, flag, type)) return offset; - assert((be16_to_cpu(hdr.beflags) & flag) == 0); + /* This can happen due to bugs in prior versions! */ + if (be16_to_cpu(hdr.beflags) & flag) { + status_broken("gossip_store flag-%u @%"PRIu64" for %u already set!", + flag, hdr_off, type); + } + hdr.beflags |= cpu_to_be16(flag); if (pwrite(gs->fd, &hdr.beflags, sizeof(hdr.beflags), hdr_off) != sizeof(hdr.beflags)) status_failed(STATUS_FAIL_INTERNAL_ERROR,