Crash with unusual luks-directly-on-hd layout

Reported by Tobias Gruetzmacher on 2012-09-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Basenji
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...

Patrick Ulbrich (pulb) wrote :

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

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
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers