Title: ArgumentOutOfRangeException in Compiler.LoadModule · Issue #4695 · PowerShell/PowerShell · GitHub
Open Graph Title: ArgumentOutOfRangeException in Compiler.LoadModule · Issue #4695 · PowerShell/PowerShell
X Title: ArgumentOutOfRangeException in Compiler.LoadModule · Issue #4695 · PowerShell/PowerShell
Description: In some cases where a module is loaded with using module
Open Graph Description: In some cases where a module is loaded with using module
X Description: In some cases where a module is loaded with using module <path> and there is an error loading the module, we can end up with a case where PowerShell HadErrors is true, but there are no errors...
Opengraph URL: https://github.com/PowerShell/PowerShell/issues/4695
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"ArgumentOutOfRangeException in Compiler.LoadModule ","articleBody":"In some cases where a module is loaded with\r\n`using module \u003cpath\u003e`\r\nand there is an error loading the module, we can end up with a case where PowerShell `HadErrors` is true, but there are no errors in the `powershell.Streams.Errors`.\r\n\r\nThis causes an index out of range when we try to throw.\r\n\r\n```CSharp\r\n var commandInfo = new CmdletInfo(\"Import-Module\", typeof(ImportModuleCommand));\r\n var ps = PowerShell.Create(RunspaceMode.CurrentRunspace)\r\n .AddCommand(commandInfo)\r\n .AddParameter(\"Name\", modulePath)\r\n .AddParameter(\"PassThru\");\r\n var moduleInfo = ps.Invoke\u003cPSModuleInfo\u003e();\r\n if (ps.HadErrors)\r\n {\r\n var errorRecord = ps.Streams.Error[0];\r\n throw InterpreterError.NewInterpreterException(modulePath, typeof(RuntimeException), null,\r\n errorRecord.FullyQualifiedErrorId, errorRecord.ToString());\r\n }\r\n```\r\n\r\nI haven't figured out yet what is causing the error, and it is harder to diagnose since this error masks the underlying condition.\r\n\r\nSteps to reproduce\r\n------------------\r\n\r\n```powershell\r\n# mod.psm1\r\n$c = Get-Command -CommandType Application -Name Foobar.nonexisting -ErrorAction SilentlyContinue\r\n\r\n######\r\n\r\nPS\u003e using module .\\mod.psm1\r\n\r\n```\r\n\r\n\r\nExpected behavior\r\n-----------------\r\n\r\n```none\r\nget-command : The term 'Foobar.nonexisting' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt mod.psm1 line:1 char:1\r\n+ get-command nonexisting -CommandType Application\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n + CategoryInfo : ObjectNotFound: (nonexisting:String) [Get-Command], CommandNotFoundException\r\n + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand\r\n```\r\n\r\nOr some \r\n\r\nActual behavior\r\n---------------\r\n```\r\nAn error occurred while creating the pipeline.\r\nAt line:0 char:0\r\n```\r\n\r\nThis is a really unhelpful error message :)\r\n\r\n```none\r\n$error[0] | fl -showerror -force *\r\nMessage : Index was out of range. Must be non-negative and less than the size of the collection.\r\n Parameter name: index\r\nActualValue :\r\nParamName : index\r\nData : {}\r\nInnerException :\r\nTargetSite : Void ThrowArgumentOutOfRangeException(System.ExceptionArgument, System.ExceptionResource)\r\nStackTrace : at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)\r\n at System.Collections.Generic.List`1.get_Item(Int32 index)\r\n at System.Management.Automation.PSDataCollection`1.get_Item(Int32 index)\r\n at System.Management.Automation.Language.Compiler.LoadModule(PSModuleInfo originalModuleInfo)\r\n at System.Management.Automation.Language.Compiler.LoadUsingsImpl(IEnumerable`1 usingAsts, Assembly[]\u0026 assemblies)\r\n at System.Management.Automation.Language.Compiler.GenerateLoadUsings(IEnumerable`1 usingStatements, Boolean allUsingsAreNamespaces, List`1 exprs)\r\n at System.Management.Automation.Language.Compiler.GenerateTypesAndUsings(ScriptBlockAst rootForDefiningTypesAndUsings, List`1 exprs)\r\n at System.Management.Automation.Language.Compiler.CompileSingleLambda(ReadOnlyCollection`1 statements, ReadOnlyCollection`1 traps, String funcName, IScriptExtent entryExtent, IScr\r\n iptExtent exitExtent, ScriptBlockAst rootForDefiningTypesAndUsings)\r\n at System.Management.Automation.Language.Compiler.CompileNamedBlock(NamedBlockAst namedBlockAst, String funcName, ScriptBlockAst rootForDefiningTypes)\r\n at System.Management.Automation.Language.Compiler.VisitScriptBlock(ScriptBlockAst scriptBlockAst)\r\n at System.Management.Automation.Language.Compiler.Compile(CompiledScriptBlockData scriptBlock, Boolean optimize)\r\n at System.Management.Automation.CompiledScriptBlockData.ReallyCompile(Boolean optimize)\r\n at System.Management.Automation.CompiledScriptBlockData.CompileUnoptimized()\r\n at System.Management.Automation.CompiledScriptBlockData.Compile(Boolean optimized)\r\n at System.Management.Automation.DlrScriptCommandProcessor.Init()\r\n at System.Management.Automation.CommandDiscovery.CreateCommandProcessorForScript(ExternalScriptInfo scriptInfo, ExecutionContext context, Boolean useNewScope, SessionStateInternal\r\n sessionState)\r\n at System.Management.Automation.CommandDiscovery.CreateScriptProcessorForSingleShell(ExternalScriptInfo scriptInfo, ExecutionContext context, Boolean useLocalScope, SessionStateIn\r\n ternal sessionState)\r\n at System.Management.Automation.CommandDiscovery.LookupCommandProcessor(CommandInfo commandInfo, CommandOrigin commandOrigin, Nullable`1 useLocalScope, SessionStateInternal sessio\r\n nState)\r\n at System.Management.Automation.CommandDiscovery.LookupCommandProcessor(String commandName, CommandOrigin commandOrigin, Nullable`1 useLocalScope)\r\n at System.Management.Automation.Runspaces.Command.CreateCommandProcessor(ExecutionContext executionContext, CommandFactory commandFactory, Boolean addToHistory, CommandOrigin orig\r\n in)\r\n at System.Management.Automation.Runspaces.LocalPipeline.CreatePipelineProcessor()\r\nHelpLink :\r\nSource : mscorlib\r\nHResult : -2146233086\r\n```\r\n\r\nEnvironment data\r\n----------------\r\n\r\nAll versions\r\n","author":{"url":"https://github.com/powercode","@type":"Person","name":"powercode"},"datePublished":"2017-08-29T09:36:05.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/4695/PowerShell/issues/4695"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:e8b3da9d-edd1-6732-a698-1b7a3ac2446d |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 81A8:1370E5:461F82:5E8CB3:6A57FFCE |
| html-safe-nonce | cd359736a544be4f8257f9d12945f324641f46606999cb5d2269618c004dda85 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MUE4OjEzNzBFNTo0NjFGODI6NUU4Q0IzOjZBNTdGRkNFIiwidmlzaXRvcl9pZCI6IjE5NjU4MDczOTIxNTY4MTEyMTQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 4b0a216c39a56a76bfcddd96f028d3c8fed89917a56a3755e620168e8cf4f963 |
| hovercard-subject-tag | issue:253589487 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PowerShell/4695/issue_layout |
| twitter:image | https://opengraph.githubassets.com/424a240072308413f6227465488a9f7ed71d50787322b50e3540404bd04dfce6/PowerShell/PowerShell/issues/4695 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/424a240072308413f6227465488a9f7ed71d50787322b50e3540404bd04dfce6/PowerShell/PowerShell/issues/4695 |
| og:image:alt | In some cases where a module is loaded with using module |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | powercode |
| hostname | github.com |
| expected-hostname | github.com |
| None | 49c8c15fabcbf356d607a90ca115c13b273e42ff8b74155de050fd229a9b0121 |
| turbo-cache-control | no-preview |
| go-import | github.com/PowerShell/PowerShell git https://github.com/PowerShell/PowerShell.git |
| octolytics-dimension-user_id | 11524380 |
| octolytics-dimension-user_login | PowerShell |
| octolytics-dimension-repository_id | 49609581 |
| octolytics-dimension-repository_nwo | PowerShell/PowerShell |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49609581 |
| octolytics-dimension-repository_network_root_nwo | PowerShell/PowerShell |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 3fb1f684e7a833eb1b2d01d39875a2b52cb4fe9b |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width