We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When reading an ACL policy that does not exist using the CLI, it results in a panic.
However, when using the flag -format=json, the panic does not occur and it returns the string null
-format=json
null
With ACL initialized, execute in a server agent consul acl policy read -token=<consul token> -name does-not-exist
consul acl policy read -token=<consul token> -name does-not-exist
agent: check_monitors = 0 check_ttls = 0 checks = 0 services = 0 build: prerelease = revision = 53f65dc3 version = 1.15.0 version_metadata = consul: acl = enabled bootstrap = false known_datacenters = 1 leader = false leader_addr = 10.99.0.13:8300 server = true raft: applied_index = 269 commit_index = 269 fsm_pending = 0 last_contact = 29.57435ms last_log_index = 269 last_log_term = 3 last_snapshot_index = 0 last_snapshot_term = 0 latest_configuration = [{Suffrage:Voter ID:3239f2d0-0c18-f1ad-9879-f3cc68196fff Address:10.99.0.11:8300} {Suffrage:Voter ID:a9074442-03f0-ec2c-7138-13da2bd0f7ba Address:10.99.0.12:8300} {Suffrage:Voter ID:db2e41cc-8b21-6ffa-401d-429c5ba13707 Address:10.99.0.13:8300}] latest_configuration_index = 0 num_peers = 2 protocol_version = 3 protocol_version_max = 3 protocol_version_min = 0 snapshot_version_max = 1 snapshot_version_min = 0 state = Follower term = 3 runtime: arch = amd64 cpu_count = 8 goroutines = 145 max_procs = 8 os = linux version = go1.20.1 serf_lan: coordinate_resets = 0 encrypted = true event_queue = 0 event_time = 3 failed = 0 health_score = 0 intent_queue = 0 left = 0 member_time = 5 members = 3 query_queue = 0 query_time = 1 serf_wan: coordinate_resets = 0 encrypted = true event_queue = 0 event_time = 1 failed = 0 health_score = 0 intent_queue = 0 left = 0 member_time = 3 members = 3 query_queue = 0 query_time = 1
data_dir = "/opt/consul" server = true advertise_addr = "{{ GetInterfaceIP \"eth0\" }}" client_addr = "127.0.0.1 {{ GetInterfaceIP \"eth0\" }}" primary_datacenter = "dc1" bootstrap_expect = 3 retry_join = [ "10.99.0.11", "10.99.0.12", "10.99.0.13", ] tls { defaults { ca_file = "/etc/certs.d/ca.pem" cert_file = "/etc/certs.d/cert.pem" key_file = "/etc/certs.d/private_key.pem" verify_incoming = true verify_outgoing = true } internal_rpc { verify_server_hostname = true } } auto_encrypt { allow_tls = true } encrypt = "redacted" ports { https = 8501 grpc = 8502 grpc_tls = 8503 } connect { enabled = true } acl { enabled = true default_policy = "deny" enable_token_persistence = true tokens { initial_management = "redacted" agent = "redacted" } } ui_config { enabled = true } telemetry { prometheus_retention_time = "10s" disable_hostname = true }
OS: Ubuntu 22.04 Arch: Amd64 Platform: LXD Container
The output of the panic:
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xe47c9a] goroutine 1 [running]: github.com/hashicorp/consul/command/acl/policy.(*prettyFormatter).FormatPolicy(0xc000212000, 0x0) github.com/hashicorp/consul/command/acl/policy/formatter.go:53 +0x3a github.com/hashicorp/consul/command/acl/policy/read.(*cmd).Run(0xc0002351f0, {0xc000138040?, 0xffffffffffffffff?, 0x0?}) github.com/hashicorp/consul/command/acl/policy/read/policy_read.go:100 +0x397 github.com/mitchellh/cli.(*CLI).Run(0xc0008d1900) github.com/mitchellh/cli@v1.1.0/cli.go:260 +0x5f8 main.realMain() github.com/hashicorp/consul/main.go:48 +0x40f main.main() github.com/hashicorp/consul/main.go:18 +0x19
The text was updated successfully, but these errors were encountered:
huikang
Successfully merging a pull request may close this issue.
Overview of the Issue
When reading an ACL policy that does not exist using the CLI, it results in a panic.
However, when using the flag
-format=json
, the panic does not occur and it returns the stringnull
Reproduction Steps
With ACL initialized, execute in a server agent
consul acl policy read -token=<consul token> -name does-not-exist
Consul info for both Client and Server
Server info
Operating system and Environment details
OS: Ubuntu 22.04
Arch: Amd64
Platform: LXD Container
Log Fragments
The output of the panic:
The text was updated successfully, but these errors were encountered: