Ubuntu

VLC cannot play from hfsplus drive

Reported by Amitai Bar on 2009-03-27
44
This bug affects 6 people
Affects Status Importance Assigned to Milestone
VLC media player
Fix Released
Wishlist
Rémi Denis-Courmont
linux (Ubuntu)
Undecided
Unassigned
Nominated for Lucid by mickie.kext
vlc (Ubuntu)
Low
Unassigned
Nominated for Lucid by mickie.kext

Bug Description

HI
I mounted my hfsplu drives (non journaled) with fstab:
/dev/sda2 /media/Amitai hfsplus rw,exec,auto,users 0 0
/dev/sdb2 /media/MediaAndStuff hfsplus rw,exec,auto,users 0 0
The drive is working fine and I can read and write into the drive. the only problem is that vlc is not willing to play from the drive. Totem is working fine.
Thanks for the help
Amitai

Amitai Bar (amitaibar) wrote :

Forgot to mention that i'm using ubuntu jaunty. I

David Futcher (bobbo) wrote :

Looks like a bug in vlc. Marking this bug under vlc package.

affects: ubuntu → vlc (Ubuntu)
Fabian Alenius (fabian-alenius) wrote :

More info about this bug can be found here:

http://forum.videolan.org/viewtopic.php?f=13&t=52379&start=15

Looks like there currently is no solution in sight. :-(

Reinhard Tartler (siretart) wrote :

behavior caused by the linux hfs filesystem driver not being posix compliant.

would need upstream work, but not high priority there.

Changed in vlc (Ubuntu):
importance: Undecided → Low
status: New → Triaged
Rémi Denis-Courmont (rdenis) wrote :

This is not a VLC bug. Please re-assign to the kernel.

Changed in vlc:
status: New → Invalid
Reinhard Tartler (siretart) wrote :

on upstream's request, I've opened a kernel task for this.

Changed in vlc (Ubuntu):
status: Triaged → Won't Fix
Tobias Kortkamp (tobiask) wrote :

I was tired of this bug and had some time today, so I created this workaround. It works for me so maybe it will work for somebody else as well. You need to install the libvlc-dev package first, extract the tarball and then run make && sudo make install which will replace VLC's access_directory plugin, so back it up first.
It's for VLC 0.9.9a

Hi, I accidentally filed duplicate off this bug here https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/502736

Is there any signs that this bug will be fixed by the time of Lucid release?

Rémi Denis-Courmont (rdenis) wrote :

Well, clearly the kernel guys don't care. I can blame them - HFS+ is not quite the most common file system on Linux. They haven't fixed it after over a year. At this point it's clear they are not going to fix it just for the sake of an Ubuntu bug reports.

Bottom line: if you care about it, make a patch against the kernel, get it upstream, and then wait until Ubuntu gets the new upstream kernel. It might already be too late for Lucid, I dunno.

Tobias, is there any chance you can update your workaround for vlc 1.0.3? Also, Rémi, since the hfsplus kernel guys are unwilling to fix this, is there anything at all that vlc can do, even as an unofficial patch that never makes it into the source control repository? I know that hfsplus isn't the best filesystem in the world, but for those of us with Macs who want to share a partition between Linux and OS X, I don't believe there's a better option. And yes, I've tried using the fuse+ext2 solution, but it seems really slow and buggy, and no, I won't for a second entertain the idea of using NTFS, and don't like the FAT32 option because of its size limitations.

Tobias Kortkamp (tobiask) wrote :

Jason, here is an updated version of my workaround. I only tested it with VLC 1.0.4, but I think it will work with VLC 1.0.3 as well.

Tobias Kortkamp (tobiask) wrote :

...

Tobias, this is absolutely perfect. Thank you SO much! With your change, I can now access files on my shared hfsplus partition. YAY! =:)

Rémi, is there any chance at all that this could be included in vlc proper? Here's the small diff that Tobias created...

--- ../vlc-1.0.3/modules/access/directory.c 2009-08-09 17:50:57.000000000 -0400
+++ directory.c 2010-01-11 02:42:54.000000000 -0500
@@ -139,6 +133,24 @@ struct access_sys_t
 static block_t *Block( access_t * );
 static int Control( access_t *, int, va_list );

+static DIR *TryToOpendir(const char *path)
+{
+ DIR *retval = NULL;
+ FILE *file = utf8_fopen(path, "r");
+
+ if(file == NULL) {
+ return NULL;
+ }
+
+ struct stat buf;
+ fstat (fileno (file), &buf);
+ if(S_ISDIR(buf.st_mode)) {
+ retval = utf8_opendir(path);
+ }
+
+ return retval;
+}
+
 /*****************************************************************************
  * Open: open the directory
  *****************************************************************************/
@@ -152,7 +164,9 @@ static int Open( vlc_object_t *p_this )

     DIR *handle;
     if (strcmp (p_access->psz_path, "-"))
- handle = utf8_opendir (p_access->psz_path);
+ {
+ handle = TryToOpendir (p_access->psz_path);
+ }
     else
     {
 #if 0 /* This won't work yet, it generates paths like "-/music.ogg".
@@ -348,7 +362,7 @@ static block_t *Block (access_t *p_acces
         }
         sprintf (sub->path, "%s/%s", current->path, entry);

- DIR *handle = utf8_opendir (sub->path);
+ DIR *handle = TryToOpendir(sub->path);
         if (handle != NULL)
         {
             sub->parent = current;

Changed in vlc:
milestone: none → 1.1.0
Jeremy Foshee (jeremyfoshee) wrote :

Hi Amitai,

Please be sure to confirm this issue exists with the latest development release of Ubuntu. ISO CD images are available from http://cdimage.ubuntu.com/releases/lucid . If the issue remains, please run the following command from a Terminal (Applications->Accessories->Terminal). It will automatically gather and attach updated debug information to this report.

apport-collect -p linux 349707

Also, if you could test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

[This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: needs-kernel-logs
tags: added: needs-upstream-testing
tags: added: kj-triage
Changed in linux (Ubuntu):
status: New → Incomplete
Bjoern (bjoernd) wrote :

Tobias, your patch is a blessing, thank you so much!

Changed in vlc:
status: Invalid → Fix Committed
assignee: nobody → Rémi Denis-Courmont (rdenis)
importance: Undecided → Wishlist
Andreas (andreas-kotowicz) wrote :

I still have this problem with ubuntu 10.04, and vlc 1.0.6-1ubuntu1.1.
If I copy the files from the hfsplus partition onto a ext4 / ext3 partition, vlc will play them. Therefore I don't see this bug as being fixed yet.

Changed in vlc:
status: Fix Committed → New

AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: Cirrus Analog [Cirrus Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: koto 1619 F.... pulseaudio
 /dev/snd/pcmC0D0p: koto 1619 F...m pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xc1d00000 irq 22'
   Mixer name : 'Cirrus Logic CS4206'
   Components : 'HDA:10134206,106b0b00,00100301'
   Controls : 16
   Simple ctrls : 9
Card1.Amixer.info:
 Card hw:1 'NVidia'/'HDA NVidia at 0xc1080000 irq 16'
   Mixer name : 'Nvidia ID a'
   Components : 'HDA:10de000a,10de0101,00100100'
   Controls : 0
   Simple ctrls : 0
Card1.Amixer.values:

DistroRelease: Ubuntu 10.04
HibernationDevice: RESUME=UUID=1010414e-ad11-4b70-9500-308f0691d218
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
MachineType: Apple Inc. MacBookPro6,2
NonfreeKernelModules: wl nvidia
Package: linux (not installed)
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.32-22-generic root=UUID=17a80f16-e184-4634-8817-b5b46e01e128 ro quiet splash
ProcEnviron:
 LANG=en_US.utf8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-22.33-generic 2.6.32.11+drm33.2
Regression: Yes
RelatedPackageVersions: linux-firmware 1.34
Reproducible: Yes
RfKill:

Tags: lucid filesystem regression-potential needs-upstream-testing
Uname: Linux 2.6.32-22-generic x86_64
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
dmi.bios.date: 03/19/10
dmi.bios.vendor: Apple Inc.
dmi.bios.version: MBP61.88Z.0057.B05.1003191134
dmi.board.asset.tag: Base Board Asset Tag#
dmi.board.name: Mac-F22586C8
dmi.board.vendor: Apple Inc.
dmi.board.version: MacBookPro6,2
dmi.chassis.type: 10
dmi.chassis.vendor: Apple Inc.
dmi.chassis.version: Mac-F22586C8
dmi.modalias: dmi:bvnAppleInc.:bvrMBP61.88Z.0057.B05.1003191134:bd03/19/10:svnAppleInc.:pnMacBookPro6,2:pvr1.0:rvnAppleInc.:rnMac-F22586C8:rvrMacBookPro6,2:cvnAppleInc.:ct10:cvrMac-F22586C8:
dmi.product.name: MacBookPro6,2
dmi.product.version: 1.0
dmi.sys.vendor: Apple Inc.

tags: added: apport-collected

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Andreas (andreas-kotowicz) wrote :

I just wanted to add that I'm very well aware that this is a kernel bug. But, it seems like the attached patch is a good work around. So if there is really no drawback applying the patch, please do apply it to vlc 1.0.6.

Changed in vlc:
status: New → Confirmed
Rémi Denis-Courmont (rdenis) wrote :

Back to fix committed, which is the correct UPSTREAM status.

Changed in vlc:
status: Confirmed → Fix Committed
Rémi Denis-Courmont (rdenis) wrote :

The kernel bug is clear and well understood:

The open() system calls returns succesfully when the path points to a REGULAR file from an HFS mount point, and the open flags include O_DIRECTORY. Then, glibc is lrued into returning success on opendir(), instead of failing with errno = EISDIR, as required by POSIX. And then, VLC thinks the REGULAR file is a directory, even though it's not.

Changed in linux (Ubuntu):
status: Incomplete → New
Changed in vlc:
status: Fix Committed → Fix Released
Andreas (andreas-kotowicz) wrote :

this problem is fixed in vlc 1.1 (see https://launchpad.net/~c-korn/+archive/vlc)

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 349707

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete

AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.23.
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: Cirrus Analog [Cirrus Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: koto 1795 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xc1d00000 irq 42'
   Mixer name : 'Cirrus Logic CS4206'
   Components : 'HDA:10134206,106b0b00,00100301'
   Controls : 17
   Simple ctrls : 10
Card1.Amixer.info:
 Card hw:1 'NVidia'/'HDA NVidia at 0xc1080000 irq 16'
   Mixer name : 'Nvidia GPU 0a HDMI/DP'
   Components : 'HDA:10de000a,10de0101,00100100'
   Controls : 16
   Simple ctrls : 4
DistroRelease: Ubuntu 11.04
HibernationDevice: RESUME=UUID=1010414e-ad11-4b70-9500-308f0691d218
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
MachineType: Apple Inc. MacBookPro6,2
NonfreeKernelModules: wl nvidia
Package: linux (not installed)
ProcEnviron:
 LANGUAGE=en_US:en
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.38-11-generic root=UUID=17a80f16-e184-4634-8817-b5b46e01e128 ro vga=771 quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 2.6.38-11.48-generic 2.6.38.8
RelatedPackageVersions:
 linux-restricted-modules-2.6.38-11-generic N/A
 linux-backports-modules-2.6.38-11-generic N/A
 linux-firmware 1.52
StagingDrivers: brcm80211
Tags: natty staging
Uname: Linux 2.6.38-11-generic x86_64
UpgradeStatus: Upgraded to natty on 2011-04-28 (141 days ago)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
dmi.bios.date: 07/26/10
dmi.bios.vendor: Apple Inc.
dmi.bios.version: MBP61.88Z.0057.B0C.1007261552
dmi.board.asset.tag: Base Board Asset Tag#
dmi.board.name: Mac-F22586C8
dmi.board.vendor: Apple Inc.
dmi.board.version: MacBookPro6,2
dmi.chassis.type: 10
dmi.chassis.vendor: Apple Inc.
dmi.chassis.version: Mac-F22586C8
dmi.modalias: dmi:bvnAppleInc.:bvrMBP61.88Z.0057.B0C.1007261552:bd07/26/10:svnAppleInc.:pnMacBookPro6,2:pvr1.0:rvnAppleInc.:rnMac-F22586C8:rvrMacBookPro6,2:cvnAppleInc.:ct10:cvrMac-F22586C8:
dmi.product.name: MacBookPro6,2
dmi.product.version: 1.0
dmi.sys.vendor: Apple Inc.

tags: added: natty staging

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed

Amitai Bar, thank you for reporting this bug and helping make Ubuntu better. This bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? Can you try with the latest development release of Ubuntu? ISO CD images are available from http://cdimage.ubuntu.com/releases/ .

If it remains an issue, could you run the following command from a Terminal (Applications->Accessories->Terminal). It will automatically gather and attach updated debug information to this report.

apport-collect -p linux <replace-with-bug-number>

Also, if you could test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: jaunty
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers