New Issue: [Bug]: 'mason' bug with non-newline terminated file

28315, "jabraham17", "[Bug]: 'mason' bug with non-newline terminated file", "2026-01-15T00:16:30Z"

I am seeing extremely odd behavior with mason and a simple Mason.toml file

Putting the following file in a directory and running mason test replicates the error

[brick]
name = "dummy"
version = "1.0.0"
type = "library"
chplVersion = "2.6.0..2.8.0"
# comment

NOTE: to replicate the error, there must be no newline on # comment

I have seen a wide number of errors.

  • Mason in release mode with Chapel 2.7 segaults
  • Mason in debug mode with main does many different things
    • Prints a failure like the following, then segfaults
    /opt/homebrew/Cellar/python@3.14/3.14.2/Frameworks/Python.framework/Versions/3.14/Resources/Python.app/Contents/MacOS/Python: can't open file '/Users/jade/Development/dummy/\x01': [Errno 2] No such file or directory
    mason update  : Skipping registry update since no dependency found in manifest file.
    zsh: segmentation fault  mason test 
    
    * halts on a nil check failure while running `List.deinit`
    ```
    MasonUtils.chpl:596: error: attempt to dereference nil
    Stacktrace

    _getRef() at $CHPL_HOME/modules/standard/List.chpl:619
    _fireAllDestructors() at $CHPL_HOME/modules/standard/List.chpl:1382
    deinit() at $CHPL_HOME/modules/standard/List.chpl:565
    deinit() at $CHPL_HOME/modules/packages/TOML.chpl:1233
    deinit() at $CHPL_HOME/modules/packages/TOML.chpl:1225
    doClear() at $CHPL_HOME/modules/internal/SharedObject.chpl:328
    deinit() at $CHPL_HOME/modules/internal/SharedObject.chpl:374
    deinit() at $CHPL_HOME/modules/packages/TOML.chpl:160
    parseToml() at $CHPL_HOME/modules/packages/TOML.chpl:106
    parseToml() at $CHPL_HOME/modules/packages/TOML.chpl:86
    getProjectType() at MasonUtils.chpl:596
    masonTest() at MasonTest.chpl:97
    main() at mason.chpl:140
    ```
    * segfaults in updateLock on `log.infoln("Will do external update");`. Looks like some kind of memory corruption in qio?
    * segfaults while running `getRuntimeComm`
    * asserts on a memcpy with length 0 in `getRuntimeComm`


There is such a wide range of errors, so I am not sure if there is a single root cause bug or just a cascade of bugs