tailhook / vagga

Vagga is a containerization tool without daemons
http://vagga.readthedocs.org
MIT License
1.86k stars 96 forks source link

Vagga panics on malformed config file #469

Closed anxolerd closed 6 years ago

anxolerd commented 6 years ago

Description

When using a malformed config file, vagga panics and does not produce any meaningful error message. It would be nice to have better error message than just thread 'main' panicked at ....

Steps to reproduce

Vagga version

vagga --version
v0.8.0-6-g5720e96

Scenario

cat >vagga.yaml <<EOF
containers:
  app:
    setup:
      - !Alpine v3.5
      - !Sh |SOMETEXT
          uname -a
commands:
  run: !Command
    container: app
    run: ls -lah
EOF

vagga run

Actual result

Output

thread 'main' panicked at 'not yet implemented', target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:214:16
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Backtrace

thread 'main' panicked at 'not yet implemented', target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:214:16
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:60
             at /checkout/src/libstd/panicking.rs:380
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:396
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:611
   5: std::panicking::begin_panic_new
             at /checkout/src/libstd/panicking.rs:553
   6: quire::parser::plain_value
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:214
   7: quire::parser::parse_node
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:0
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:593
   8: quire::parser::parse_list
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:313
   9: quire::parser::parse_node
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:653
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:593
  10: quire::parser::parse_map
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:389
  11: quire::parser::parse_node
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:639
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:593
  12: quire::parser::parse_map
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:389
  13: quire::parser::parse_node
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:639
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:593
  14: quire::parser::parse_map
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:389
  15: quire::parser::parse_node
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:639
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:593
  16: quire::parser::parse_tokens
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:705
             at target/.cargo/registry/src/github.com-1ecc6299db9ec823/quire-0.3.1/src/parser.rs:731
  17: vagga::config::config::single_file

Expected result

Meaningful error message like Malformed config file at line 5

tailhook commented 6 years ago

Yes, this should be on my to do list. But it's a bug of a configuration library: https://github.com/tailhook/rust-quire/issues/12