Crash with unusual luks-directly-on-hd layout

Bug #1045095 reported by Tobias Gruetzmacher
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Basenji
Fix Released
Undecided
Unassigned

Bug Description

I have a rather "unusual" LUKS setup, there is no partition table on some of my LUKS devices, just the LUKS header and the encrypted file system inside. Since Basenji just blindly assumes every LUKS container is in a partition (a rather fragile assumption, it might even be on a RAID, LVM, etc.), it instantiates a DkDisk object for a non-existent device and crashes with this error:

Unhandled Exception: System.Exception: org.freedesktop.DBus.Error.UnknownMethod: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist

  at org.freedesktop.DBus.PropertiesProxy.Get (System.String interface, System.String propname) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDisk.get_IsDrive () [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.GetDriveType (Platform.Unix.IO.DkDisk drive) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.FillDriveInfo (Platform.Common.IO.DriveInfo d, Platform.Unix.IO.DkDisk dev) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.GetAll (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Platform.Gnome.IO.GioDriveInfoProvider.GetAll (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Platform.Common.IO.DriveInfo.GetDrives (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Basenji.Gui.DriveSelection.<RefreshListAsync>m__0 () [0x00000] in <filename unknown>:0
  at System.Threading.Thread.StartInternal () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.Exception: org.freedesktop.DBus.Error.UnknownMethod: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist

  at org.freedesktop.DBus.PropertiesProxy.Get (System.String interface, System.String propname) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDisk.get_IsDrive () [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.GetDriveType (Platform.Unix.IO.DkDisk drive) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.FillDriveInfo (Platform.Common.IO.DriveInfo d, Platform.Unix.IO.DkDisk dev) [0x00000] in <filename unknown>:0
  at Platform.Unix.IO.DkDriveInfoProvider.GetAll (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Platform.Gnome.IO.GioDriveInfoProvider.GetAll (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Platform.Common.IO.DriveInfo.GetDrives (Boolean readyDrivesOnly) [0x00000] in <filename unknown>:0
  at Basenji.Gui.DriveSelection.<RefreshListAsync>m__0 () [0x00000] in <filename unknown>:0
  at System.Threading.Thread.StartInternal () [0x00000] in <filename unknown>:0

I attached a simple fix, which works for my case. I didn't find a generic "get-device-which-contains-this" function in udisk's API, so I went with that specific check in my patch...

Revision history for this message
Tobias Gruetzmacher (tobix) wrote :
Revision history for this message
Patrick Ulbrich (pulb) wrote :

Many thanks for you patch, I'll check it out when I'm back from vacation :-)

Revision history for this message
Patrick Ulbrich (pulb) wrote :

I commited a fix based on your patch, thanks again! :-)

Changed in basenji:
status: New → Fix Committed
milestone: none → 1.0
Patrick Ulbrich (pulb)
Changed in basenji:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.