Docker image: Error parsing resolv.conf: ProtoError { kind: Msg("Malformed label: --") }

Hello,

I have some trouble starting the Actyx docker image.

if I start this docker-compose file on my Fedora machine

actyx:
    image: actyx/actyx:2.11  # 2.10 didn't work as well
    ports:
      - '4001:4001'
      - '4458:4458'
      - '4454:4454'
    privileged: true
    tty: true
    restart: always
    volumes:
      - 'actyx-volume:/data'

I get this error:

actyx_1              | 2022-02-15T08:14:14.199269Z  INFO node::node_storage: wal_checkpoint(TRUNCATE) returned busy=Ok(0) log=Ok(0) checkpointed=Ok(0)
actyx_1              | 2022-02-15T08:14:14.216807Z  INFO node::node: Actyx 2.11.0-d946b32cdace404500172c32a76eec628ee1870c-linux-x86_64-release is starting
actyx_1              | 2022-02-15T08:14:14.224326Z  WARN node::node: Shutting down because component Admin errored: "Building libp2p transport: Creating TokioDnsConfig: Error parsing resolv.conf: ProtoError { kind: Msg("Malformed label: --") }"
actyx_1              | 2022-02-15T08:14:14.224433Z ERROR NODE_STOPPED_BY_NODE: NODE_STOPPED_BY_NODE
actyx_1              | Error: internal error. Please contact Actyx support. (Component Admin: Building libp2p transport: Creating TokioDnsConfig: Error parsing resolv.conf: ProtoError { kind: Msg("Malformed label: --") })
actyx_1              | Node exited with error InternalError(Component Admin
actyx_1              | 
actyx_1              | Caused by:
actyx_1              |     0: Building libp2p transport
actyx_1              |     1: Creating TokioDnsConfig
actyx_1              |     2: Error parsing resolv.conf: ProtoError { kind: Msg("Malformed label: --") })

Do you have an idea how to fix this?

Could you post your resolv.conf? I don’t know how Docker derives the file that it probably injects into the image, so it would be great to also get that file from inside the Actyx container (e.g. by overriding the ENTRYPOINT).

If the resolv.conf abides by the standard, then this would be a bug in libp2p DNS, otherwise it would be a bug in your environment (most likely docker-compose).

Hi,

I did this little override

FROM actyx/actyx:2.11.0
ENTRYPOINT [ "sh", "-c", "sleep 10 & cat /etc/resolv.conf" ]

and got this result.

actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0
actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0
actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0
actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0
actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0
actyx_1              | search --
actyx_1              | nameserver 127.0.0.11
actyx_1              | options edns0 trust-ad ndots:0

it appears that actyx does not handle this as expected. :frowning:

Hmm, I would expect this file to lead to a non-working system, regardless of Actyx: -- is definitely not a valid search domain, and 127.0.0.11 is fishy, to say the least. trust-ad also doesn’t feature in my documentation for this file. And why is the contents duplicated? search is valid only once within this file.

Hi @AlexH,

if you’re stuck with this file, what I could do is to fall back to plain TCP without DNS in case we can’t parse resolv.conf, would that solve your issue?

Regards,

Roland

In my case that would be fine, I just need it for local development without additional peers.

I don’t know where all these entries come from, but DNS generally works in this container.

Fedora probably does whatever it needs to do to make this work, but the config will cause trouble with non-Fedora software (like Actyx). I’ll open a ticket to fall back to plain TCP, will probably take until next week for pushing 2.12 out.

1 Like