Solydxk-system hangs indefinitely on the orange splash screen

Post your bugs here.
User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 09 Apr 2019 21:54

I downgraded chromium and wanted to put it on the blacklist, but solydxk-system refused to start. I used apt, but I'm still wonderng what happened.

Code: Select all

solydxk-system
https://repository.solydxk.com/mirrors.list
https://repository.solydxk.com/mirrors.list
Create list store eval string: Gtk.ListStore(bool, str, str, str, str, int, int)
First item is column name (multi-column list): Aktuell
First item is column name (multi-column list): Land
First item is column name (multi-column list): Paketquelle
First item is column name (multi-column list): URL
First item is column name (multi-column list): Geschwindigkeit
Create column names: ['Aktuell', 'Land', 'Paketquelle', 'URL', 'Geschwindigkeit']
First item is column name: skip first item
Create column: Gtk.TreeViewColumn("Aktuell", Gtk.CellRendererToggle(), active=0)
Column added: Aktuell
Create column: Gtk.TreeViewColumn("Land", Gtk.CellRendererText(), text=1, weight=5, size=6)
Column added: Land
Create column: Gtk.TreeViewColumn("Paketquelle", Gtk.CellRendererText(), text=2, weight=5, size=6)
Column added: Paketquelle
Create column: Gtk.TreeViewColumn("URL", Gtk.CellRendererText(), text=3, weight=5, size=6)
Column added: URL
Create column: Gtk.TreeViewColumn("Geschwindigkeit", Gtk.CellRendererText(), text=4, weight=5, size=6)
Column added: Geschwindigkeit
Create list store eval string: Gtk.ListStore(bool, str, int, int)
Create column names: ['Column 0', 'Column 1']
Create column: Gtk.TreeViewColumn("Column 0", Gtk.CellRendererToggle(), active=0)
Column added: Column 0
Create column: Gtk.TreeViewColumn("Column 1", Gtk.CellRendererText(), text=1, weight=2, size=3)
Column added: Column 1
[['Installieren', '', 'Gerät', 'driver', 'manid', 'deviceid'], [True, '/usr/share/solydxk/system/images/amd.png', 'Advanced Micro Devices, Inc. [AMD/ATI] Cape Verde PRO [Radeon HD 7750/8740 / R7 250E] ', 'xserver-xorg-video-amdgpu', '1002', '683f']]
Create list store eval string: Gtk.ListStore(bool, GdkPixbuf.Pixbuf, str, int, int)
First item is column name (multi-column list): Installieren
First item is column name (multi-column list): 
First item is column name (multi-column list): Gerät
Create column names: ['Installieren', '', 'Gerät']
First item is column name: skip first item
Create column: Gtk.TreeViewColumn("Installieren", Gtk.CellRendererToggle(), active=0)
Column added: Installieren
Create column: Gtk.TreeViewColumn("", Gtk.CellRendererPixbuf(), pixbuf=1)
Column added: 
Create column: Gtk.TreeViewColumn("Gerät", Gtk.CellRendererText(), text=2, weight=3, size=4)
Column added: Gerät
Create list store eval string: Gtk.ListStore(bool, str, int, int)
Create column names: ['Column 0', 'Column 1']
Create column: Gtk.TreeViewColumn("Column 0", Gtk.CellRendererToggle(), active=0)
Column added: Column 0
Create column: Gtk.TreeViewColumn("Column 1", Gtk.CellRendererText(), text=1, weight=2, size=3)
Column added: Column 1
Create list store eval string: Gtk.ListStore(bool, str, int, int)
Create column names: ['Column 0', 'Column 1']
Create column: Gtk.TreeViewColumn("Column 0", Gtk.CellRendererToggle(), active=0)
Column added: Column 0
Create column: Gtk.TreeViewColumn("Column 1", Gtk.CellRendererText(), text=1, weight=2, size=3)
Column added: Column 1
Create list store eval string: Gtk.ListStore(bool, str, str, bool, int, int)
First item is column name (multi-column list): Installiert
First item is column name (multi-column list): Sprachumgebung
First item is column name (multi-column list): Sprache
First item is column name (multi-column list): Standard
Create column names: ['Installiert', 'Sprachumgebung', 'Sprache', 'Standard']
First item is column name: skip first item
Create column: Gtk.TreeViewColumn("Installiert", Gtk.CellRendererToggle(), active=0)
Column added: Installiert
Create column: Gtk.TreeViewColumn("Sprachumgebung", Gtk.CellRendererText(), text=1, weight=4, size=5)
Column added: Sprachumgebung
Create column: Gtk.TreeViewColumn("Sprache", Gtk.CellRendererText(), text=2, weight=4, size=5)
Column added: Sprache
Create column: Gtk.TreeViewColumn("Standard", Gtk.CellRendererToggle(), active=3)
Column added: Standard
Create list store eval string: Gtk.ListStore(bool, str, int, int)
Create column names: ['Column 0', 'Column 1']
Create column: Gtk.TreeViewColumn("Column 0", Gtk.CellRendererToggle(), active=0)
Column added: Column 0
Create column: Gtk.TreeViewColumn("Column 1", Gtk.CellRendererText(), text=1, weight=2, size=3)
Column added: Column 1


User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 10 Apr 2019 04:24

Does the terminal output change if you run solydxk-system with the nosplash parameter?

Code: Select all

solydxk-system --nosplash
or

Code: Select all

solydxk-system -n


SolydXK needs you!
Development | Testing | Translations

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 10 Apr 2019 17:09

It started ok 2x with and without nosplash and hangs again on the 3. start (from terminal). After some minutes I entered ctrl-c and after some seconds the SolydXK Systemsettings screen came up. I think after those gtk messages (as posted in the output above) the program analyzes the disks and something immediately before needs the ctrl-c to proceed. It seems to be somewhere in between line 240 and 278 of solydxk_system.py. What happens at that point?

I tail'ed the log and this is where it hangs:

Code: Select all

tail -f /var/log/solydxk-system.log 
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Slovakia Debian ftp.sk.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Slovenia Debian ftp.si.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Spain Debian ftp.es.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Sweden Debian ftp.se.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Switzerland Debian ftp.ch.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Taiwan Debian ftp.tw.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Turkey Debian ftp.tr.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: Ukraine Debian ftp.ua.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: United Kingdom Debian ftp.uk.debian.org/debian
10-04-2019 18:55:47 get_mirrors                   DEBUG     Mirror data: United States Debian ftp.us.debian.org/debian
10-04-2019 18:55:52 show_splash_preview           DEBUG     Plymouth theme preview: /usr/share/solydxk/system/images/splash-no-preview.png (width:300)
This is now reproducible, splash doesn't matter.

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 10 Apr 2019 17:53

I've tried to let it hang repeatedly, but without any luck.
The code numbers you are mentioning is all the code to get all the necessary information from the system and that's a lot.

Could you try starting it with the python debugger?

Code: Select all

sudo python3 -m pdb /usr/lib/solydxk/system/main.py -n
In the debugger, type 'c' and enter. This will continue the code, hopefully until it breaks.
To quit the debugger, type 'q' and enter.


SolydXK needs you!
Development | Testing | Translations

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 10 Apr 2019 18:23

it hangs at the exact same point. I waited about 5 min and entered ctrl-c again.

Code: Select all

Column added: Column 0
Create column: Gtk.TreeViewColumn("Column 1", Gtk.CellRendererText(), text=1, weight=2, size=3)
Column added: Column 1

Program interrupted. (Use 'cont' to resume).
^C> /usr/lib/python3.5/subprocess.py(789)communicate()
-> self.stdout.close()
(Pdb) q
========== Device Info of: /dev/sdi1 ==========
UUID: 
FS Type: ntfs
Mount point: /media/root/Seagate2
Label: Seagate2
Total size: 7814025212.0
Free size: 5448806540.0
Used size: 2365218672.0
ConnectionBus: usb
Removable: True
Has Grub: False
I could try to insert print statements into solidxk-system.py but I've no idea where to put them. Your code is too complicated for my limited knowledge.

Edit: I had a look at the harddisk list and realized that my external USB drive is the first one and mounted as root. After terminating solydxk-system the HD is still root-mounted. Which might explain why the first run after reboot was ok but the repeated ones had a problem. I don't know why the second run did work though.
Anyway, testing again and watching the mount status of the USB HDD. Ctrl-c gets it to mount - and unmounts this time around. Not-unmounting might have been the consequence of kill commands. So something before mounting or mounting itself is the problem.

Generally speaking I'm not comfortable with solydxk-system mounting anything as root, especially not USB media. I checked journalctl and saw that root is also mounting my USB pen drive. This might be dangerous - you can buy rogue devices at every corner.

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 11 Apr 2019 10:43

SolydXK System should only temporary mount a device if it finds one that hasn't already been mounted (either manually or fstab). It needs to do that to get the size, available size and used size of a partition, used in the fstab mount tab. It did mount, but things went wrong when it needed to unmount (it never even reached that code).

I had the same behavior with a USB pen drive. So, that made it easier to debug.

I simplified the mounting code and uploaded an updated package to testing:
https://repository.solydxk.com/pool/tes ... xk-system/

Could you try it out?


SolydXK needs you!
Development | Testing | Translations

User avatar
grizzler
Posts: 2103
Joined: 04 Mar 2013 15:45
Location: The Hague, NL

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby grizzler » 11 Apr 2019 11:13

Wouldn't grub-mount (https://www.gnu.org/software/grub/manua ... mount.html) be useful here? True read-only mount, no root necessary if the destination has the right owner (except for unmounting, apparently).
Frank

SolydX EE 64 - tracking Debian Testing

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 11 Apr 2019 16:01

I'll test. - Edit: I'm unable to produce the error. Looks good.

Why do you need the partition size of USB media for fstab? Removable media should not be mounted via fstab anyway but via the appropriate processes. Isn't there a way to mount everything but USB? Even temporary read only mounting of pen drives can compromise system security if it's done with root privileges. The user doesn't expect solydxk-system to do that. USB media are often interchanged with other persons and as such must be generally considered compromised. Root mounting random stuff is one of the things you just don't do.

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 12 Apr 2019 09:50

I will take a look at that but that can take a few weeks. Perhaps somewhere in May.


SolydXK needs you!
Development | Testing | Translations

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 15 Apr 2019 10:04

I had a little time to take a look at solydxk-system:
  • Temporary mounts are mounted read only.
  • In the Fstab tab pen drives are not listed but USB external drives are (the distinction between the is complicated. So, that needs testing by the community). Github change: https://github.com/SolydXK/solydxk-syst ... d42fb82977
  • In the Encryption tab, pen drives are also listed (and mounted) after the user gives the consent to do so by checking the check box.
I've been using this version for a couple of days without any issues.

The package is in testing.


SolydXK needs you!
Development | Testing | Translations

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 15 Apr 2019 19:02

sdj is a pendrive. The check box on the Encryption tab is unchecked.

Code: Select all

journalctl |grep sdj
Apr 15 20:46:33 kernel: sd 10:0:0:0: [sdj] 31299584 512-byte logical blocks: (16.0 GB/14.9 GiB)
Apr 15 20:46:33 kernel: sd 10:0:0:0: [sdj] Write Protect is off
Apr 15 20:46:33 kernel: sd 10:0:0:0: [sdj] Mode Sense: 03 00 00 00
Apr 15 20:46:33  kernel: sd 10:0:0:0: [sdj] No Caching mode page found
Apr 15 20:46:33  kernel: sd 10:0:0:0: [sdj] Assuming drive cache: write through
Apr 15 20:46:33  kernel:  sdj: sdj1
Apr 15 20:46:33  kernel: sd 10:0:0:0: [sdj] Attached SCSI removable disk
Apr 15 20:52:02  kernel: FAT-fs (sdj1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
Apr 15 20:52:02  kernel: FAT-fs (sdj1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Apr 15 20:52:02  udisksd[2693]: Mounted /dev/sdj1 at /media/root/D063-D2AC on behalf of uid 0
Apr 15 20:52:03  udisksd[2693]: Unmounted /dev/sdj1 on behalf of uid 0
Apr 15 20:52:03  sudo[12226]:     root : TTY=unknown ; PWD=/root ; USER=root ; COMMAND=/sbin/blkid -o value -s LABEL /dev/sdj1
Apr 15 20:54:12  kernel: FAT-fs (sdj1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
Apr 15 20:54:12  kernel: FAT-fs (sdj1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Apr 15 20:54:12  udisksd[2693]: Mounted /dev/sdj1 at /media/root/D063-D2AC on behalf of uid 0
Apr 15 20:54:12  udisksd[2693]: Unmounted /dev/sdj1 on behalf of uid 0
Apr 15 20:54:12  sudo[13790]:     root : TTY=unknown ; PWD=/root ; USER=root ; COMMAND=/sbin/blkid -o value -s LABEL /dev/sdj1
Updated to newest version in testing:

Code: Select all

Apr 15 20:59:43 kernel: FAT-fs (sdj1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
Apr 15 20:59:43 udisksd[2693]: Mounted /dev/sdj1 at /media/root/D063-D2AC on behalf of uid 0
Apr 15 20:59:43 udisksd[2693]: Unmounted /dev/sdj1 on behalf of uid 0
Obviously the pen drive gets mounted with the encryption check box uncheched.
I don't think removable drives - no matter what kind - should be available for fstab via a GUI. This is setting up users for trouble. Whoever wants to do that should know enough to edit fstab manually. And in fact they aren't - my external hdd doesn't show up under the fstab tab which is correct.
So the mounting of USB media is only needed for the encryption tab. Couldn't mounting wait until the encryption checkbox is chosen?

Edit: Also on the encryption tab my USB hdd doesn't show up, only the pen drive - if I check the check box.

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 16 Apr 2019 09:47

There's a new version in testing.

I have moved around the code that temporary mounts the drives if not mounted. This should prevent the pen drive from being mounted at application startup.

It is hard (or perhaps impossible) to detect a flash usb drive.
With "udisksctl dump" I can check which properties I can use. With this new package I check on these properties:
  • ConnectionBus: must be 'usb'
  • Removable: must be True
  • SortKey: must contain 'hotplug'
I've tried other properties as well, but they seem to be empty, other drives have the same value, or the value may be overwritten by the manufacturer. So, I cannot safely use them.

This is the dump of my pen drive:

Code: Select all

/org/freedesktop/UDisks2/drives/058f_6387_0378BE3B:
  org.freedesktop.UDisks2.Drive:
    CanPowerOff:                true
    Configuration:              {}
    ConnectionBus:              usb
    Ejectable:                  true
    Id:                         058f-6387-0378BE3B
    Media:                      
    MediaAvailable:             true
    MediaChangeDetected:        true
    MediaCompatibility:         
    MediaRemovable:             true
    Model:                      6387
    Optical:                    false
    OpticalBlank:               false
    OpticalNumAudioTracks:      0
    OpticalNumDataTracks:       0
    OpticalNumSessions:         0
    OpticalNumTracks:           0
    Removable:                  true
    Revision:                   8.07
    RotationRate:               -1
    Seat:                       seat0
    Serial:                     0378BE3B
    SiblingId:                  /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0
    Size:                       4026531840
    SortKey:                    01hotplug/1555396704703060
    TimeDetected:               1555396704703060
    TimeMediaDetected:          1555396704703060
    Vendor:                     058f
    WWN:        
Reference: http://storaged.org/doc/udisks2-api/lat ... Drive.html


SolydXK needs you!
Development | Testing | Translations

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 16 Apr 2019 14:44

Arjen Balfoort wrote:
16 Apr 2019 09:47
  • ConnectionBus: must be 'usb'
  • Removable: must be True
  • SortKey: must contain 'hotplug'
I've seen that. I can find and read codeblocks now but I'm still having a real hard time figuring out how everything works together. I haven't done anything longer than maybe 300 lines.

I would have expected code like

Code: Select all

if not include_flash:
     if connectionbus == 'usb' and removable and ejectable: add_device = False
But I can't find it. include_flash seems to always end up True. New version still root-mounts everything on startup, whether encryption is checked or not.

The fstab tab now shows USB hdd and USB flash drive which is consequent but still bad.

User avatar
Arjen Balfoort
Site Admin
Posts: 9128
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby Arjen Balfoort » 16 Apr 2019 17:48

We cannot use ejectable because that would exclude external usb drives. Some pen drives return that the media is not ejectable but most return that the media is ejectable, even though it is not.

In /usr/lib/solydxk/system/udisks2.py you can find this code block:

Code: Select all

                sort_key = drive.get_cached_property("SortKey").get_string()
                is_hot_plugged = True if 'hotplug' in sort_key else False
                #media = drive.get_cached_property("Media").get_string()
                #media_compatibility = drive.get_cached_property("MediaCompatibility").get_strv()
                
                # Is this a USB pen drive?
                is_flash = True if connection_bus == 'usb' and removable and is_hot_plugged else False

                if (include_flash and is_flash) or (include_drives and not is_flash):
The last line checks is_flash and include_flash before continuing to collect further data of the drive.

Insert pen drive:

Code: Select all

$ journalctl |grep sdc
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] 7864320 512-byte logical blocks: (4.03 GB/3.75 GiB)
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Write Protect is off
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Mode Sense: 23 00 00 00
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Apr 16 19:35:00 solydxk-main kernel:  sdc: sdc1
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Attached SCSI removable disk
Now run solydxk-system and check again:

Code: Select all

arjen@solydxk-main:~/dev$ journalctl |grep sdc
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] 7864320 512-byte logical blocks: (4.03 GB/3.75 GiB)
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Write Protect is off
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Mode Sense: 23 00 00 00
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Apr 16 19:35:00 solydxk-main kernel:  sdc: sdc1
Apr 16 19:35:00 solydxk-main kernel: sd 7:0:0:0: [sdc] Attached SCSI removable disk
With my pen drive solydxk-system does not mount the pen drive when it is inserted.

Could you run

Code: Select all

udisksctl dump > udisksdump.txt
and send me the output?


SolydXK needs you!
Development | Testing | Translations

User avatar
ilu
Posts: 2319
Joined: 09 Oct 2013 12:45

Re: Solydxk-system hangs indefinitely on the orange splash screen

Postby ilu » 17 Apr 2019 23:26

Could it be that using the updated solydxk-system package needs a reboot? It looks as if I still used the old version yesterday.

Today the pen drive got mounted only after I checked encryption which is correct. The USB hdd got mounted at startup, which I personally don't like but which is probably the behaviour you wish to have. There was still some strange behaviour I'll check again after reboot tomorrow.

I don't think you'll need to work through the dump of my rather vast storage zoo. :lol:


Return to “Bug Control”

Who is online

Users browsing this forum: No registered users and 1 guest