Skip to content

Pub commands crash when $HOME is not set  #3167

@akbiggs

Description

@akbiggs

Environment

  • pub version or flutter pub version: Dart SDK version: 2.15.0-edge.e08ee7abecd889a55bee49afe635ea620b28b93e (be) (Wed Sep 15 00:43:22 2021 +0000) on "linux_x64"
  • OS version: linux_x64

Problem

You can make pub crash by unsetting the $HOME variable. This breaks tools that run pub in a clean environment without any environment variables. Example repro instructions

$ unset $HOME
$ dart pub get

Expected behavior

pub does not crash.

Actual behavior

Invalid argument(s): join(null, ".config"): part 0 was null, but part 1 was not.
package:path/src/context.dart 1102:5               _validateArgList
package:path/src/context.dart 242:5                Context.join
package:path/path.dart 265:13                      join
package:pub/src/io.dart 1007:14                    dartConfigDir.<fn>
package:pub/src/io.dart 1017:2                     dartConfigDir
package:pub/src/io.dart                            dartConfigDir
package:pub/src/system_cache.dart 92:33            new SystemCache
package:pub/src/command.dart 51:39                 PubCommand.cache
package:pub/src/command.dart 65:70                 PubCommand.entrypoint
package:pub/src/command/get.dart 54:11             GetCommand.runProtected
dart:async                                         new Future.sync
package:pub/src/utils.dart 112:12                  captureErrors.wrappedCallback
dart:async                                         runZonedGuarded
package:pub/src/utils.dart 129:5                   captureErrors
package:pub/src/command.dart 171:13                PubCommand.run
package:args/command_runner.dart 209:27            CommandRunner.runCommand
package:dartdev/dartdev.dart 222:30                DartdevRunner.runCommand
package:args/command_runner.dart 119:25            CommandRunner.run.<fn>
dart:async                                         new Future.sync
package:args/command_runner.dart 119:14            CommandRunner.run
package:dartdev/dartdev.dart 66:29                 runDartdev
../dart-sdk/sdk/pkg/dartdev/bin/dartdev.dart 11:9  main

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions