Skip to content

EverCDDL crashes on cddl specification #248

@facundominguez

Description

@facundominguez

The following input causes CDDL.exe to crash, probably because it runs out of memory. The RSS grows beyond 150G at least.

Details
bootstrap_witness =
  [ public_key : vkey
  , signature  : signature
  , chain_code : bytes .size 32
  , attributes : bytes
  ]

block_number = uint .size 8

slot = uint .size 8

hash32 = bytes .size 32

vkey = bytes .size 32

vrf_vkey = bytes .size 32

vrf_cert = [bytes, bytes .size 80]


operational_cert = 
  ( hot_vkey        : kes_vkey       
  , sequence_number : sequence_number
  , kes_period      : kes_period     
  , sigma           : signature      
  )

kes_vkey = bytes .size 32

sequence_number = uint .size 8

kes_period = uint .size 8

protocol_version = (major_protocol_version, uint)

major_protocol_version = 0 .. 3

kes_signature = bytes .size 448

signature = bytes .size 64

bytes = bstr
bstr = #2
uint = #0

These are the reproduction steps:

nix-shell -p podman --run 'podman run --rm -v $PWD:/mnt/cddl_test ghcr.io/project-everest/everparse:v2025.10.06 "bin/cddl.exe /mnt/cddl_test/test.cddl"'

This is tested in Nixos 25.11.

Here's the output:

Details
Running: '/mnt/everparse/opt/FStar/out/bin/fstar.exe' '--locate_z3' '4.13.3' >'/dev/null' 2>&1
Success, output F* to: /tmp/evercddl_362_1765284662.tmp/CDDLTest.Test.fst
Running: '/mnt/everparse/opt/FStar/out/bin/fstar.exe' '/tmp/evercddl_362_1765284662.tmp/CDDLTest.Test.fst' '--cache_dir' '/tmp/evercddl_362_1765284662.tmp' '--already_cached' '*,-CDDLTest.Test' '--z3version' '4.13.3' '--cache_checked_modules' '--warn_error' '@241' '--cmi' '--ext' 'context_pruning' '--load_cmxs' 'evercddl_lib' '--load_cmxs' 'evercddl_plugin' '--include' '/mnt/everparse/src/cbor/spec' '--include' '/mnt/everparse/src/cbor/pulse' '--include' '/mnt/everparse/src/cddl/spec' '--include' '/mnt/everparse/src/cddl/pulse' '--include' '/mnt/everparse/src/cddl/tool' '--include' '/mnt/everparse/opt/karamel/krmllib' '--include' '/mnt/everparse/opt/karamel/krmllib/obj' '--include' '/mnt/everparse/opt/pulse/out/lib/pulse' '--include' '/mnt/everparse/lib/evercddl/lib' '--include' '/mnt/everparse/lib/evercddl/plugin'
* Warning 274:
  - Implicitly opening namespace 'cddl.pulse.ast.det.' shadows module 'c'
    in file "/mnt/everparse/opt/karamel/krmllib/C.fst".
  - Rename "/mnt/everparse/opt/karamel/krmllib/C.fst" to avoid conflicts.

TAC>> 20 defs remaining. Producing definitions for bool
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 19 defs remaining. Producing definitions for everparse-no-match
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 18 defs remaining. Producing definitions for uint
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 17 defs remaining. Producing definitions for bstr
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 16 defs remaining. Producing definitions for bytes
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 15 defs remaining. Producing definitions for signature
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 14 defs remaining. Producing definitions for kes_signature
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 13 defs remaining. Producing definitions for major_protocol_version
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 12 defs remaining. Producing definitions for protocol_version
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 11 defs remaining. Producing definitions for kes_period
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 10 defs remaining. Producing definitions for sequence_number
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 9 defs remaining. Producing definitions for kes_vkey
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 8 defs remaining. Producing definitions for operational_cert
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 7 defs remaining. Producing definitions for vrf_cert
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 6 defs remaining. Producing definitions for vrf_vkey
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 5 defs remaining. Producing definitions for vkey
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 4 defs remaining. Producing definitions for hash32
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 3 defs remaining. Producing definitions for slot
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 2 defs remaining. Producing definitions for block_number
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
TAC>> 1 defs remaining. Producing definitions for bootstrap_witness
TAC>> owf'
TAC>> owf
TAC>> wf'
TAC>> wf
TAC>> validator
TAC>> bundle
TAC>> type
TAC>> teq
TAC>> prettify impl
TAC>> spec type
TAC>> specteq
TAC>> prettify spec
TAC>> relteq
TAC>> rel
TAC>> releq
TAC>> grelteq
TAC>> greleq
TAC>> specteq
TAC>> gspecteq
TAC>> teq
TAC>> gteq
TAC>> parser
TAC>> bundle'
TAC>> env'
TAC>> ancillary envs
TAC>> source'
Verified module: CDDLTest.Test
All verification conditions discharged successfully
Running: '/mnt/everparse/opt/FStar/out/bin/fstar.exe' '/tmp/evercddl_362_1765284662.tmp/CDDLTest.Test.fst' '--cache_dir' '/tmp/evercddl_362_1765284662.tmp' '--odir' '/tmp/evercddl_362_1765284662.tmp' '--already_cached' '*,' '--codegen' 'krml' '--extract_module' 'CDDLTest.Test' '--z3version' '4.13.3' '--cache_checked_modules' '--warn_error' '@241' '--cmi' '--ext' 'context_pruning' '--load_cmxs' 'evercddl_lib' '--load_cmxs' 'evercddl_plugin' '--include' '/mnt/everparse/src/cbor/spec' '--include' '/mnt/everparse/src/cbor/pulse' '--include' '/mnt/everparse/src/cddl/spec' '--include' '/mnt/everparse/src/cddl/pulse' '--include' '/mnt/everparse/src/cddl/tool' '--include' '/mnt/everparse/opt/karamel/krmllib' '--include' '/mnt/everparse/opt/karamel/krmllib/obj' '--include' '/mnt/everparse/opt/pulse/out/lib/pulse' '--include' '/mnt/everparse/lib/evercddl/lib' '--include' '/mnt/everparse/lib/evercddl/plugin'
* Warning 274:
  - Implicitly opening namespace 'cddl.pulse.ast.det.' shadows module 'c'
    in file "/mnt/everparse/opt/karamel/krmllib/C.fst".
  - Rename "/mnt/everparse/opt/karamel/krmllib/C.fst" to avoid conflicts.

Killed
Extraction to krml failed

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