Skip to content

Unexpected NullReferenceException when trying to create CkanModule from JSON #1702

Description

@keyspace

Running on Arch linux 64-bit, mono 4.4.0.40, CKAN git master.

Essentially a duplicate of #1681.

The stack trace to mono ./ckan.exe update -d is:

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at CKAN.Repo.ProcessRegistryMetadataFromJSON (System.String metadata, CKAN.Registry registry, System.String filename) <0x40b9cc50 + 0x00242> in <filename unknown>:0 
  at CKAN.Repo.UpdateRegistryFromTarGz (System.String path, CKAN.Registry registry) <0x40b9a160 + 0x002d3> in <filename unknown>:0 
  at CKAN.Repo.UpdateRegistry (System.Uri repo, CKAN.Registry registry, CKAN.KSP ksp, IUser user, Boolean clear) <0x40b32a60 + 0x001c3> in <filename unknown>:0 
  at CKAN.Repo.UpdateAllRepositories (CKAN.RegistryManager registry_manager, CKAN.KSP ksp, IUser user) <0x40b316e0 + 0x00103> in <filename unknown>:0 
  at CKAN.CmdLine.Update.UpdateRepository (CKAN.KSP ksp, System.String repository) <0x40af6e70 + 0x00043> in <filename unknown>:0 
  at CKAN.CmdLine.Update.RunCommand (CKAN.KSP ksp, System.Object raw_options) <0x40af6970 + 0x00147> in <filename unknown>:0 
  at CKAN.CmdLine.MainClass.Main (System.String[] args) <0x40aaa340 + 0x00efb> in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at CKAN.Repo.ProcessRegistryMetadataFromJSON (System.String metadata, CKAN.Registry registry, System.String filename) <0x40b9cc50 + 0x00242> in <filename unknown>:0 
  at CKAN.Repo.UpdateRegistryFromTarGz (System.String path, CKAN.Registry registry) <0x40b9a160 + 0x002d3> in <filename unknown>:0 
  at CKAN.Repo.UpdateRegistry (System.Uri repo, CKAN.Registry registry, CKAN.KSP ksp, IUser user, Boolean clear) <0x40b32a60 + 0x001c3> in <filename unknown>:0 
  at CKAN.Repo.UpdateAllRepositories (CKAN.RegistryManager registry_manager, CKAN.KSP ksp, IUser user) <0x40b316e0 + 0x00103> in <filename unknown>:0 
  at CKAN.CmdLine.Update.UpdateRepository (CKAN.KSP ksp, System.String repository) <0x40af6e70 + 0x00043> in <filename unknown>:0 
  at CKAN.CmdLine.Update.RunCommand (CKAN.KSP ksp, System.Object raw_options) <0x40af6970 + 0x00147> in <filename unknown>:0 
  at CKAN.CmdLine.MainClass.Main (System.String[] args) <0x40aaa340 + 0x00efb> in <filename unknown>:0 

Avoiding it as outlined in pull #1700 (essentially doing nothing) I get:

311 [1] INFO CKAN.Repo (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.tar.gz
313 [1] DEBUG CKAN.Net (null) - Downloading https://github.com/KSP-CKAN/CKAN-meta/archive/master.tar.gz to /tmp/CdFileMgr/70ce8316-d267-4f.tmp
3023 [1] DEBUG CKAN.Repo (null) - Starting registry update from tar.gz file: "/tmp/CdFileMgr/70ce8316-d267-4f.tmp".
3026 [1] DEBUG CKAN.Repo (null) - Skipping archive entry CKAN-meta-master/
3026 [1] DEBUG CKAN.Repo (null) - Skipping archive entry CKAN-meta-master/A6Intruder/
3026 [1] DEBUG CKAN.Repo (null) - Reading CKAN data from CKAN-meta-master/A6Intruder/A6Intruder-104.105.ckan
3027 [1] DEBUG CKAN.Repo (null) - Converting metadata from JSON.
3027 [1] ERROR CKAN.Repo (null) - Error processing CKAN-meta-master/A6Intruder/A6Intruder-104.105.ckan (exception tree leaf)

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da' or one of its dependencies.
File name: 'Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da'
  at CKAN.Repo.ProcessRegistryMetadataFromJSON (System.String metadata, CKAN.Registry registry, System.String filename) <0x409a6c50 + 0x00087> in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da' or one of its dependencies.
File name: 'Autofac, Version=3.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da'
  at CKAN.Repo.ProcessRegistryMetadataFromJSON (System.String metadata, CKAN.Registry registry, System.String filename) <0x409a6c50 + 0x00087> in <filename unknown>:0

The assembly not loading is troubling (and json.net wrapping exceptions is outright annoying).

Breakpoints led me to a CkanModule.FromJson(metadata) call which seemingly throws, because module is never found (next line, 33).

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