Re: HALPlugIn::Initialize appears to be freezing
Re: HALPlugIn::Initialize appears to be freezing
- Subject: Re: HALPlugIn::Initialize appears to be freezing
- From: Matthew Xavier Mora <email@hidden>
- Date: Fri, 13 Jul 2007 12:07:54 +0100
The FA-101 uses the built-in AppleFWAudio driver. It does not have any
HAL plugins by default. But we did add the ability for a 3rd party to
register a plugin to be loaded when a vendor and model Id matched a
device that is connected. The FA-101 does not have any such plugin.
Sound like there is some software installed on those machines that is
causing problems for core audio.
If you can get a system profiler report of the affected machine, and
send It to me I can see if I can help spot the culprit.
Matt
Sent from my iPhone
On Jul 12, 2007, at 8:43 PM, Jeff Moore <email@hidden> wrote:
It looks like somebody's user-land audio driver is attempting to
open a component. This isn't something that the HAL does, so it
pretty much means that it's a third party driver. You'd need to find
out what driver it is from the user.
On Jul 12, 2007, at 5:14 AM, Christopher Ashworth wrote:
Hi,
I am receiving a number of reports from users that my plugin-based
application is freezing on launch when some FireWire devices are
attached.
When extra logging is turned on for these users, their log shows
the freeze is occurring when loading one of the plugins during a
call to principalClass:
Class pluginClass = [(NSBundle *)plugin principalClass];
The app does not crash, but never gets past this call. The devices
can be successfully re-connected after launch, and used without
incident. The freeze only manifests if they are connected during
launch.
I purchased two of the FireWire devices causing this problem (an
Edirol FA-66 audio device and a Canopus ADVC 110 video I/O device)
but I cannot get this freeze to happen on any of my development
machines (PowerBook G4, MacBook Pro, Intel Mac Mini).
I found a savvy user who was able to run Thread Viewer and send me
copies of the stacks. On his MacBook Pro with an Edirol FA-101
Thread Viewer reports that the main thread is stuck at:
mach_wait_until
usleep
0x162183c8
0x1620bbed
0x1620fc03
CallComponentFunctionCommon
0x1620fb4d
CallComponentDispatch
CallComponentOpen
OpenAComponent
OpenComponent
0x15fbc882
0x15fd0ab9
HALPlugIn::Initialize()
HALPlugInManagement::CreateHALPlugIn(CACFPlugIn const*)
HALPlugInManagement::Initialize()
HALSystem::InitializeDevices()
HALSystem::CheckOutInstance()
AudioHardwareAddPropertyListener
0x15f74b36
_objc_notify_images
ImageLoaderMachO::doNotification(dyld_image_mode, unsigned,
dyld_image_info const*)
dyld::notifyAdding(std::vector<ImageLoader*,
std::allocator<ImageLoader*> >&)
ImageLoader::link(ImageLoader::LinkContext const&,
ImageLoader::BindingLaziness, ImageLoader::InitializerRunning,
unsigned)
dyld::link(ImageLoader*, ImageLoader::BindingLaziness,
ImageLoader::InitializerRunning)
NSLinkModule
NSLinkModule
objc_loadModule
_NSBundleLoadCode
-[NSBundle load]
-[NSBundle principalClass]
-[ToolboxController(Private)
validatePlugin:validPluginArray:needNewerQLabArray:needNewerPluginArray:
]
-[ToolboxController(Private) discoverPlugins]
-[ToolboxController awakeFromNib]
-[NSSet makeObjectsPerformSelector:]
-[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:]
loadNib
+[NSBundle(NSNibLoading)
_loadNibFile:nameTable:withZone:ownerBundle:]
+[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
+[NSBundle(NSNibLoading) loadNibNamed:owner:]
NSApplicationMain
_start
start
The other threads at that time slice look like this:
-------------------
semaphore_wait_signal_trap
RecursiveReaderWriterLock::lockForSingleWritingThread()
NSCreateObjectFileImageFromFile
_CFBundleDYLDLoadBundle
CFBundleLoadExecutable
CFBundleGetFunctionPointerForName
_CFPFactoryCreateInstance
IOCreatePlugInInterfaceForService
0x162159f7
0x16215cf7
0x16215d58
0x16216948
0x162180c2
0x162182d9
0x162184b0
_pthread_body
-------------------
semaphore_wait_signal_trap
MPWaitOnQueue
TNodeSyncTask::SyncTaskProc(void*)
PrivateMPEntryPoint
_pthread_body
-------------------
kevent
PrivateMPEntryPoint
_pthread_body
-------------------
mach_msg_trap
0x2753ca
_pthread_body
-------------------
mach_msg_trap
__ape_agent
_pthread_body
-------------------
He repeated the freeze several times and the stack typically shown
for the main thread is the one given above (modulo slightly
different hex values), although once it did show:
mach_wait_until
usleep
0x162103c8
0x16203bed
0x16207c03
0x90cd0a53
0x16207b4d
0x90cd0738
0x90cd0714
0x90ccfc1a
0x90cd528c
0x15fb0882
0x15fc4ab9
0x9145429f
0x91453997
0x91452878
0x914526d5
0x91451459
0x91466d08
0x15f58b36
_objc_notify_images
ImageLoaderMachO::doNotification(dyld_image_mode, unsigned,
dyld_image_info const*)
dyld::notifyAdding(std::vector<ImageLoader*,
std::allocator<ImageLoader*> >&)
ImageLoader::link(ImageLoader::LinkContext const&,
ImageLoader::BindingLaziness,
ImageLoader::InitializerRunningꓘᏊunsigned)
dyld::link(ImageLoader*, ImageLoader::BindingLaziness,
ImageLoader::InitializerRunning)
NSLinkModule
NSLinkModule
objc_loadModule
_NSBundleLoadCode
-[NSBundle load]
-[NSBundle principalClass]
-[ToolboxController(Private)
validatePlugin:validPluginArray:needNewerQLabArray:needNewerPluginArray:
]
-[ToolboxController(Private) discoverPlugins]
-[ToolboxController awakeFromNib]
-[NSSet makeObjectsPerformSelector:]
-[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:]
loadNib
+[NSBundle(NSNibLoading)
_loadNibFile:nameTable:withZone:ownerBundle:]
+[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
+[NSBundle(NSNibLoading) loadNibNamed:owner:]
NSApplicationMain
_start
start
Any thoughts on what might be going on? Should I file a bug on it,
or am I building the plugins incorrectly and causing the link to
fail for some specific (as yet unknown) circumstances?
TIA,
Christopher
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com
This email sent to email@hidden
--
Jeff Moore
Core Audio
Apple
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden