INFLUXD_CONFIG_PATH is completely broken

dasel error message:

Error: cannot use property selector on non map/struct types: invalid: property not found: tls-cert
Error: cannot use property selector on non map/struct types: invalid: property not found: tls-key

/etc/influxdb/config.json

{ "tls-cert": "/tls/cert.pem", "tls-key": "/tls/privkey.pem" }

$ export INFLUXD_CONFIG_PATH=/etc/influxdb/

$ ./entrypoint.sh influxd


Error: could not get read parser: read parser required when reading from stdin
panic: reflect: call of reflect.Value.Set on zero Value

goroutine 1 [running]:
reflect.flag.mustBeAssignableSlow(0xc000132f70?)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:265 +0x105
reflect.flag.mustBeAssignable(...)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:259
reflect.Value.Set({0x0?, 0x0?, 0x7f8a0ccca108?}, {0x771380?, 0xc0001c1820?, 0xc0001c1820?})
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:2254 +0x65
github.com/tomwright/dasel/v2.newContextWithFunctions.func1({{0x771380, 0xc0001c1820, 0x16}, 0x0, 0x0, 0x0})
        /home/runner/work/dasel/dasel/context.go:62 +0x8c
github.com/tomwright/dasel/v2.Value.Set(...)
        /home/runner/work/dasel/dasel/value.go:151
github.com/tomwright/dasel/v2.Value.initEmptydencodingMap({{0x0, 0x0, 0x0}, 0xc000177db0, 0x0, 0x0})
        /home/runner/work/dasel/dasel/value.go:325 +0x19a
github.com/tomwright/dasel/v2.Values.initEmptydencodingMaps({0xc00041b110, 0x1, 0xc0002d61c0?})
        /home/runner/work/dasel/dasel/value.go:502 +0x167
github.com/tomwright/dasel/v2.glob..func26(0xc00050c400, 0x41567a?, {0xc000177dc0, 0x1, 0xa2b000?})
        /home/runner/work/dasel/dasel/func_property.go:38 +0x1d4
github.com/tomwright/dasel/v2.BasicFunction.Run(...)
        /home/runner/work/dasel/dasel/func.go:144
github.com/tomwright/dasel/v2.(*Step).execute(0xc000360aa0)
        /home/runner/work/dasel/dasel/step.go:30 +0xc3
github.com/tomwright/dasel/v2.(*Context).Next(0xc00050c400)
        /home/runner/work/dasel/dasel/context.go:227 +0x1a5
github.com/tomwright/dasel/v2.(*Context).Run(0x78b120?)
        /home/runner/work/dasel/dasel/context.go:195 +0x29
github.com/tomwright/dasel/v2.Put({0x78b120, 0xc00041b0b0}, {0x7ffc52460522, 0x11}, {0x72dea0?, 0xc000177da0?})
        /home/runner/work/dasel/dasel/context.go:130 +0xf9
github.com/tomwright/dasel/v2/internal/command.runPutCommand(0xc000133c90, 0x790aa1?)
        /home/runner/work/dasel/dasel/internal/command/put.go:144 +0x571
github.com/tomwright/dasel/v2/internal/command.putRunE(0xc00028c700?, {0xc000360960, 0x1, 0x78d922?})
        /home/runner/work/dasel/dasel/internal/command/put.go:95 +0x613
github.com/spf13/cobra.(*Command).execute(0xc000004600, {0xc000360910, 0x5, 0x5})
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0xc000004300)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(0x0?)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992 +0x13
main.main()
        /home/runner/work/dasel/dasel/cmd/dasel/main.go:10 +0x25
panic: reflect: call of reflect.Value.Set on zero Value

goroutine 1 [running]:
reflect.flag.mustBeAssignableSlow(0xc0001daf78?)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:265 +0x105
reflect.flag.mustBeAssignable(...)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:259
reflect.Value.Set({0x0?, 0x0?, 0x7feabbe2c5b8?}, {0x771380?, 0xc0001f4fe0?, 0xc0001f4fe0?})
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:2254 +0x65
github.com/tomwright/dasel/v2.newContextWithFunctions.func1({{0x771380, 0xc0001f4fe0, 0x16}, 0x0, 0x0, 0x0})
        /home/runner/work/dasel/dasel/context.go:62 +0x8c
github.com/tomwright/dasel/v2.Value.Set(...)
        /home/runner/work/dasel/dasel/value.go:151
github.com/tomwright/dasel/v2.Value.initEmptydencodingMap({{0x0, 0x0, 0x0}, 0xc0000277e0, 0x0, 0x0})
        /home/runner/work/dasel/dasel/value.go:325 +0x19a
github.com/tomwright/dasel/v2.Values.initEmptydencodingMaps({0xc000375ec0, 0x1, 0xc000138f00?})
        /home/runner/work/dasel/dasel/value.go:502 +0x167
github.com/tomwright/dasel/v2.glob..func26(0xc000381280, 0x41567a?, {0xc0000277f0, 0x1, 0xa2b000?})
        /home/runner/work/dasel/dasel/func_property.go:38 +0x1d4
github.com/tomwright/dasel/v2.BasicFunction.Run(...)
        /home/runner/work/dasel/dasel/func.go:144
github.com/tomwright/dasel/v2.(*Step).execute(0xc0003317c0)
        /home/runner/work/dasel/dasel/step.go:30 +0xc3
github.com/tomwright/dasel/v2.(*Context).Next(0xc000381280)
        /home/runner/work/dasel/dasel/context.go:227 +0x1a5
github.com/tomwright/dasel/v2.(*Context).Run(0x78b120?)
        /home/runner/work/dasel/dasel/context.go:195 +0x29
github.com/tomwright/dasel/v2.Put({0x78b120, 0xc000375e60}, {0x7fff3b571530, 0x8}, {0x72dea0?, 0xd02c20?})
        /home/runner/work/dasel/dasel/context.go:130 +0xf9
github.com/tomwright/dasel/v2/internal/command.runPutCommand(0xc0001dbc90, 0x790aa1?)
        /home/runner/work/dasel/dasel/internal/command/put.go:144 +0x571
github.com/tomwright/dasel/v2/internal/command.putRunE(0xc0001ae200?, {0xc000331680, 0x1, 0x78d922?})
        /home/runner/work/dasel/dasel/internal/command/put.go:95 +0x613
github.com/spf13/cobra.(*Command).execute(0xc000004600, {0xc000331630, 0x5, 0x5})
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0xc000004300)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(0x0?)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992 +0x13
main.main()
        /home/runner/work/dasel/dasel/cmd/dasel/main.go:10 +0x25
panic: reflect: call of reflect.Value.Set on zero Value

goroutine 1 [running]:
reflect.flag.mustBeAssignableSlow(0xc0001a6f70?)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:265 +0x105
reflect.flag.mustBeAssignable(...)
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:259
reflect.Value.Set({0x0?, 0x0?, 0x7f1881f73108?}, {0x771380?, 0xc0001c1080?, 0xc0001c1080?})
        /opt/hostedtoolcache/go/1.21.3/x64/src/reflect/value.go:2254 +0x65
github.com/tomwright/dasel/v2.newContextWithFunctions.func1({{0x771380, 0xc0001c1080, 0x16}, 0x0, 0x0, 0x0})
        /home/runner/work/dasel/dasel/context.go:62 +0x8c
github.com/tomwright/dasel/v2.Value.Set(...)
        /home/runner/work/dasel/dasel/value.go:151
github.com/tomwright/dasel/v2.Value.initEmptydencodingMap({{0x0, 0x0, 0x0}, 0xc00009de70, 0x0, 0x0})
        /home/runner/work/dasel/dasel/value.go:325 +0x19a
github.com/tomwright/dasel/v2.Values.initEmptydencodingMaps({0xc0001f79e0, 0x1, 0xc000012f90?})
        /home/runner/work/dasel/dasel/value.go:502 +0x167
github.com/tomwright/dasel/v2.glob..func26(0xc00033b200, 0x41567a?, {0xc00009de80, 0x1, 0xa2b000?})
        /home/runner/work/dasel/dasel/func_property.go:38 +0x1d4
github.com/tomwright/dasel/v2.BasicFunction.Run(...)
        /home/runner/work/dasel/dasel/func.go:144
github.com/tomwright/dasel/v2.(*Step).execute(0xc0002eb770)
        /home/runner/work/dasel/dasel/step.go:30 +0xc3
github.com/tomwright/dasel/v2.(*Context).Next(0xc00033b200)
        /home/runner/work/dasel/dasel/context.go:227 +0x1a5
github.com/tomwright/dasel/v2.(*Context).Run(0x78b120?)
        /home/runner/work/dasel/dasel/context.go:195 +0x29
github.com/tomwright/dasel/v2.Put({0x78b120, 0xc0001f7980}, {0x7ffc69af5531, 0x7}, {0x72dea0?, 0xd02c20?})
        /home/runner/work/dasel/dasel/context.go:130 +0xf9
github.com/tomwright/dasel/v2/internal/command.runPutCommand(0xc0001a7c90, 0x790aa1?)
        /home/runner/work/dasel/dasel/internal/command/put.go:144 +0x571
github.com/tomwright/dasel/v2/internal/command.putRunE(0xc00017a200?, {0xc0002eb630, 0x1, 0x78d922?})
        /home/runner/work/dasel/dasel/internal/command/put.go:95 +0x613
github.com/spf13/cobra.(*Command).execute(0xc000004600, {0xc0002eb5e0, 0x5, 0x5})
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0xc000004300)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(0x0?)
        /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992 +0x13
main.main()
        /home/runner/work/dasel/dasel/cmd/dasel/main.go:10 +0x25
Error: cannot use property selector on non map/struct types: invalid: property not found: tls-cert
Error: cannot use property selector on non map/struct types: invalid: property not found: tls-key
2024-04-15T19:12:44.094920192Z  warn    cleaning bolt and engine files to prevent conflicts on retry       {"system": "docker", "bolt_path": "/var/lib/influxdb2/influxd.bolt", "engine_path": "/var/lib/influxdb2/engine"}

dasel error code location

return nil, fmt.Errorf("cannot use property selector on non map/struct types: %s: %w", val.Kind().String(), &ErrPropertyNotFound{Property: property})

Hello @regnaio,
I’m not really familiar with Dasel, but based off your error messages, verify that the data Dasel is trying to manipulate is indeed structured as a JSON map at the time when Dasel attempts to access these properties. Ensure the JSON input is correct and matches the structure Dasel expects. You might need to inspect the actual data being processed by Dasel to see if it aligns with the selectors you’re using.

The second series of errors, especially Error: could not get read parser: read parser required when reading from stdin , suggests that there might be a misconfiguration or incorrect invocation in the way InfluxDB is being started. This could be due to environment variables, configuration paths, or command line arguments not being correctly set or passed.

Check the entrypoint script (entrypoint.sh) for how it’s invoking InfluxDB (influxd). Ensure that all necessary environment variables are set properly before this script is run. Also, ensure that the script does not expect input from stdin unless it is explicitly provided.

I’m seeing this as well. I don’t understand the conditions that cause it, but I’ll report it as an issue.

BTW, entrypoint.sh is from InfluxDB’s official Dockerfile:

Dockerfile

DockerHub

entrypoint.sh

Maybe this is the offending line:

dasel -f "${INFLUXD_CONFIG_PATH}" -s "${primary_key}" -w - 2>/dev/null || \
    table::get "${primary_key}" "${COLUMN_DEFAULT}"

Here’s the issue that I reported: Starting a v2 container throws property not found: `tls-cert`, `tls-key` · Issue #740 · influxdata/influxdata-docker · GitHub
Please add any info that might help.

1 Like