Skip to content
This repository was archived by the owner on Jul 1, 2021. It is now read-only.
This repository was archived by the owner on Jul 1, 2021. It is now read-only.

RbVmomi deserialization fails on managed object type ContentLibrary #205

@agrare

Description

@agrare

Describe the bug
Running a simple WaitForUpdates event catcher (watching latestPage from the eventManager) [ref] and observed an exception when a scheduled "Sync Library" task ran. When we caught this event an exception was raised by deserialization because it couldn't find the ContentLibrary type. Further investigation shows that there was a task with an entity of ManagedObjectReference:ContentLibrary clib-2895

To Reproduce
Steps to reproduce the behavior:

  1. Synchronize a Content Library
  2. vim.serviceContent.taskManager.recentTask.first.info
  3. 💥
>> vim.serviceContent.taskManager.recentTask.first.info
Traceback (most recent call last):
       16: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `traverse_data'
       15: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `each'
       14: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:119:in `block in traverse_data'
       13: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:90:in `deserialize'
       12: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `traverse_data'
       11: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `each'
       10: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:124:in `block in traverse_data'
        9: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:90:in `deserialize'
        8: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `traverse_data'
        7: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:106:in `each'
        6: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:124:in `block in traverse_data'
        5: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/deserialization.rb:87:in `deserialize'
        4: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/type_loader.rb:65:in `get'
        3: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/type_loader.rb:65:in `synchronize'
        2: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/type_loader.rb:67:in `block in get'
        1: from /home/grare/adam/.gem/gems/rbvmomi-3.0.0/lib/rbvmomi/type_loader.rb:105:in `make_type'
RuntimeError (unknown VMODL type ContentLibrary)

Expected behavior
Given that ContentLibrary isn't a registered ManagedEntity in the Managed Object Types I expect this is one of those special types that has to be merged into the vmodl.db

Screenshots
The task in the vSphere client:
Screenshot from 2020-12-07 15-12-10

TaskInfo from the MOB:
Screenshot from 2020-12-07 15-07-15

Platform:

  • OS: Debian Bullseye
  • RbVmomi Version: 2.4.1 and 3.0.0
  • Ruby Version ruby 2.7.2p137 (2020-10-01 revision 5445e04352

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions