VLC cannot play from hfsplus drive

Bug #349707 reported by Amitai Bar
44
This bug affects 6 people
Affects Status Importance Assigned to Milestone
VLC media player
Fix Released
Wishlist
Rémi Denis-Courmont
linux (Ubuntu)
Incomplete
Undecided
Unassigned
Nominated for Lucid by gnufreex
vlc (Ubuntu)
Won't Fix
Low
Unassigned
Nominated for Lucid by gnufreex

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

Revision history for this message
Amitai Bar (amitaibar) wrote :

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

Revision history for this message
David Futcher (bobbo) wrote :

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

affects: ubuntu → vlc (Ubuntu)
Revision history for this message
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. :-(

Revision history for this message
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
Revision history for this message
Rémi Denis-Courmont (rdenis) wrote :

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

Changed in vlc:
status: New → Invalid
Revision history for this message
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
Revision history for this message
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

Revision history for this message
gnufreex (gnufreex) wrote :

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?

Revision history for this message
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.

Revision history for this message
Jason 'vanRijn' Kasper (vr-movingparts) wrote :

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.

Revision history for this message
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.

Revision history for this message
Tobias Kortkamp (tobiask) wrote :

...

Revision history for this message
Jason 'vanRijn' Kasper (vr-movingparts) 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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
Andreas (andreas-kotowicz) wrote : apport information

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
Revision history for this message
Andreas (andreas-kotowicz) wrote : AlsaDevices.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : AplayDevices.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : BootDmesg.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card0.Amixer.values.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card0.Codecs.codec.0.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.0.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.1.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.2.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.3.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : IwConfig.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Lspci.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Lsusb.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : PciMultimedia.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcModules.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : UdevDb.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : UdevLog.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : WifiSyslog.txt

apport information

Revision history for this message
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
Revision history for this message
Rémi Denis-Courmont (rdenis) wrote :

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

Changed in vlc:
status: Confirmed → Fix Committed
Revision history for this message
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
Revision history for this message
Rémi Denis-Courmont (rdenis) wrote :
Changed in vlc:
status: Fix Committed → Fix Released
Revision history for this message
Andreas (andreas-kotowicz) wrote :

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

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

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
Revision history for this message
Andreas (andreas-kotowicz) wrote : apport information

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
Revision history for this message
Andreas (andreas-kotowicz) wrote : AcpiTables.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : AlsaDevices.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : AplayDevices.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : BootDmesg.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card0.Amixer.values.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card0.Codecs.codec.0.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Amixer.values.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.0.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.1.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.2.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Card1.Codecs.codec.3.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : IwConfig.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Lspci.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : Lsusb.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : PciMultimedia.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcCpuinfo_.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : ProcModules.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : RfKill.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : UdevDb.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : UdevLog.txt

apport information

Revision history for this message
Andreas (andreas-kotowicz) wrote : WifiSyslog.txt

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
penalvch (penalvch) wrote :

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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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