Opened 5 years ago

Last modified 7 months ago

#12307 accepted Bug Report - General

Implement newer media handling methods (udisks2, storaged)

Reported by: J.Pilk@… Owned by: Stuart Auchterlonie
Priority: minor Milestone: 31.0
Component: MythTV - General Version: Master Head
Severity: medium Keywords: mythfrontend
Cc: Ticket locked: no

Description

I'm running a new home-brew of master under SL7 (el7). On starting mythfrontend I get a bunch of

MMUnix:CheckMountable: DBus interface error: The name org.freedesktop.UDisks was not provided by any .service files.
My repos apparently provide only udisk2 and the config file,

/etc/dbus-1/system.d/org.freedesktop.UDisks2.conf

looks for <allow own="org.freedesktop.UDisks2"/>

The source file is mythtv/libs/libmyth/mediamonitor-unix.cpp

Change History (11)

comment:1 Changed 4 years ago by Stuart Auchterlonie

Milestone: unknown0.28
Owner: set to Stuart Auchterlonie
Status: newaccepted

This needs to be fixed, as well as the 10 seconds it spends trying to connect with the service before it gives up.

udisks2 is now common, udisks1 is quite old

comment:2 Changed 4 years ago by Stuart Auchterlonie

See also #12500, need to add support here for udisks2 dbus service

comment:3 Changed 4 years ago by Stuart Auchterlonie <stuarta@…>

In 8f6b99e45f3de1a8278ede7b0d3644901a034f28/mythtv:

Refs #12307 Check if UDisks2 is in use.

First check for the original UDisks service,
if we fail to find it, check for UDisks2.

If we find UDisks2 service, then this system
has moved to UDisks2, rather than UDisks1.

For now log a message and give up. This will
reduce the frontend startup time by the 5 seconds
the loop takes to complete and fail.

TODO: Implement the same support via UDisks2 interface

comment:4 Changed 4 years ago by Stuart Auchterlonie <stuarta@…>

In 71276fae30214310237b2dcffc1421379f148b5f/mythtv:

Refs #12307 Check if UDisks2 is in use.

First check for the original UDisks service,
if we fail to find it, check for UDisks2.

If we find UDisks2 service, then this system
has moved to UDisks2, rather than UDisks1.

For now log a message and give up. This will
reduce the frontend startup time by the 5 seconds
the loop takes to complete and fail.

TODO: Implement the same support via UDisks2 interface

comment:5 Changed 4 years ago by Stuart Auchterlonie

Milestone: 0.280.29

comment:6 Changed 4 years ago by Stuart Auchterlonie

Milestone: 0.2929.0

Milestone renamed

comment:7 Changed 2 years ago by Stuart Auchterlonie

Milestone: 29.029.1

comment:8 Changed 2 years ago by Stuart Auchterlonie

Milestone: 29.130.0
Summary: Complaints about UDisks on starting frontendImplement newer media handling methods (udisks2, storaged)

comment:9 Changed 2 years ago by Stuart Auchterlonie

Udisks2 has itself been replaced by storaged on newer Fedora releases.

https://fedoraproject.org/wiki/Changes/Replace_UDisks2_by_Storaged

comment:10 Changed 10 months ago by Stuart Auchterlonie

Milestone: 30.031.0

comment:11 Changed 7 months ago by angelaschmid

I have media monitoring disabled (MonitorDrives?=0), but still these UDisk messages appear and starting MythTV takes 5 seconds longer.

MythTV starts MediaMonitor::GetMediaMonitor?() where the UDisk messages are generated and the delay happens.

In MediaMonitor::StartMonitoring?() the decision is made if the user has "MonitorDrives?" enabled and the monitoring thread is started.

The check for "MonitorDrives?" has to be made earlier.

programs/mythfrontend/main.cpp

    MediaMonitor *mon = MediaMonitor::GetMediaMonitor();
    if (mon)
    {
        mon->StartMonitoring();
        mainWindow->installEventFilter(mon);
    }
libs/libmyth/mythmediamonitor.cpp

void MediaMonitor::StartMonitoring(void)
{
    // Sanity check
    if (m_Active)
        return;
    if (!gCoreContext->GetNumSetting("MonitorDrives", 0)) {
        LOG(VB_MEDIA, LOG_NOTICE, "MediaMonitor diasabled by user setting.");
        return;
    }

    if (!m_Thread)
        m_Thread = new MonitorThread(this, m_MonitorPollingInterval);

    qRegisterMetaType<MythMediaStatus>("MythMediaStatus");

    LOG(VB_MEDIA, LOG_NOTICE, "Starting MediaMonitor");
    m_Active = true;
    m_Thread->start();
}
Note: See TracTickets for help on using tickets.