Skip to content

quick-xml update breaks netdog XML serialization #47

Open
@ginglis13

Description

@ginglis13

What I expected to happen:

An instance built with latest changes to the core-kit can be connected to.

What actually happened:

The instance never reaches multi-user.target:

       Starting Generate network configuration...
[    6.103667] netdog[961]: Failed to write network interface configuration: Error serializing config for 'eth0' to XML: Unsupported operation: character `$` is not allowed at the start of an XML name `$unflatten=mode`
         Starting Disable kexec load syscalls...
         Starting Bottlerocket data store migrator...
[    6.299955] migrator[965]: 19:08:16 [INFO] Requested version 1.21.0 matches version of given datastore at '/var/lib/bottlerocket/datastore/v1.21.0_n6rIjKZJacoTzZab'; nothing to do
[  OK  ] Started ACPI event daemon.
[FAILED] Failed to start Generate network configuration.
See 'systemctl status generate-network-config.service' for details.

This appears to be due to Rust dependency updates in #34 , specifically to netdog's dependency quick-xml from 0.26.0 to 0.36.0. From the release notes for quick-xml 0.27.0, under Misc Changes:

#490: Removed $unflatten= special prefix for fields for serde (de)serializer, > because:
it is useless for deserializer
serializer was rewritten and does not require it anymore
This prefix allowed you to serialize struct field as an XML element and now
replaced by a more thoughtful system explicitly indicating that a field should
be serialized as an attribute by prepending @ character to its name

https://github.com/tafia/quick-xml/releases/tag/v0.27.0

How to reproduce the problem:

Build the core-kit and build an aws-k8s variant with the core-kit. Launch an instance with that variant, observe above logs in EC2 serial console

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