Skip to content

zone is still available and being served after zone remove #393

@jpmens

Description

@jpmens

cascade 0.1.0-alpha5 built from source on AARCH64

I remove a zone only to find it's still being served.

$ cascade zone remove example.net
Removed zone example.net

Just for laughs, because I wanted to see the NXDOMAIN, I continue:

$ dig -p 4543 @127.0.0.1 example.net DNSKEY +multi

; <<>> DiG 9.20.15-1~deb13u1-Debian <<>> -p 4543 @127.0.0.1 example.net DNSKEY +
multi
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57348
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:  
; EDNS: version: 0, flags:; udp: 0
;; QUESTION SECTION:   
;example.net.           IN DNSKEY

;; ANSWER SECTION:
example.net.            3600 IN DNSKEY 257 3 13 (
                                lP8FeFjTGWtLl+Wvn1fsBAn+80y3roGB9CPXjUNnn1Nv
                                mEGUW9na2mVNsWBjbwwe6H6cu4o+uCgq5zhBv2yplQ==
                                ) ; KSK; alg = ECDSAP256SHA256 ; key id = 46136

;; Query time: 0 msec  
;; SERVER: 127.0.0.1#4543(127.0.0.1) (UDP)
;; WHEN: Sat Nov 29 14:31:50 CET 2025
;; MSG SIZE  rcvd: 131 

$ ls -l zone-state/
total 40
-rw------- 1 jpm jpm 11320 Nov 29 14:01 ex3.net.db
-rw------- 1 jpm jpm 25112 Nov 29 14:27 example.net.db

$ jq .zones < state.db
[]

$ cascade zone list
$

$ dig -p 4543 @127.0.0.1 example.net SOA +norec +short
nsa.example. noc.example.org. 2025112921 7200 1800 4838400 900

$ cascade status
Signing queue:
  Key: In Progress (⏵), Pending (⏸), Finished (✔)
   #:   When                      Zone             Action
   0: ✔ 2025-11-29T13:27:28+00:00 example.net      Finished
   1: ✔ 2025-11-29T13:16:54+00:00 example.net      Finished
   2: ✔ 2025-11-29T13:06:19+00:00 example.net      Finished
   3: ✔ 2025-11-29T12:53:24+00:00 example.net      Finished
   4: ✔ 2025-11-29T12:51:49+00:00 example.net      Finished
   5: ✔ 2025-11-29T12:50:19+00:00 example.net      Finished
   6: ✔ 2025-11-29T12:46:59+00:00 example.net      Finished
   7: ✔ 2025-11-29T12:41:04+00:00 example.net      Finished
   8: ✔ 2025-11-29T12:35:08+00:00 example.net      Finished
$ date
Sat 29 Nov 13:55:01 UTC 2025

I now wait a while, thinking "cached":

$ sleep 300
$ dig -p 4543 @127.0.0.1 example.net SOA +norec +short
nsa.example. noc.example.org. 2025112921 7200 1800 4838400 900

$ cascade zone history example.net
2025-11-29T13:56:41.443366Z ERROR cascade: Error: zone `example.net` does not exist

$ tail -1 /tmp/cascaded.log
2025-11-29T13:31:48.763382Z  INFO cascade::center: Removed zone 'example.net'

I then restart the server (running here under supervisor):

$ sudo supervisorctl restart cascade
cascade: stopped
cascade: started

$ dig -p 4543 @127.0.0.1 example.net +norec 

; <<>> DiG 9.20.15-1~deb13u1-Debian <<>> -p 4543 @127.0.0.1 example.net +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21864
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
[...]

Now it's gone.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions