Ticket #65 (closed bug: fixed)

Opened 16 years ago

Last modified 16 years ago

ffado: Using cached data does not work correct

Reported by: slack Assigned to: wagi
Priority: critical Milestone: FFADO 2.0
Component: Version:
Keywords: Cc:
The device the bug applies to: PHASE X24 FW

Description

Thanks Peter for your fast response!

And sorry for my very short last tickets. Now I try to include as much information as possible.

Some informations about my system setup: - Slackware 12.0 - Kernel 2.6.23.12 with - realtime patch: patch-2.6.23.11-rt14.bz2 - acpi patch: acpi-release-20070126-2.6.23.diff.bz2 - ieee1394 patch: 2.6.23_ieee1394_v600.patch.bz2

I use libfreebob 1.0.7 and jackd 0.109.0 for audio streaming and ffado for controlling the mixer.

FYI, I tried to use ffado r836 and jackd 0.109.0 for audio streaming, but ffado used mostly all of the available cpu power.

This is the output of "ffado-bridgeco-downloader 0 display":

2520594313: Debug (ieee1394service.cpp)[ 201] initialize: This system supports the raw1394_read_cycle_timer call, using it. 2520629851: Debug (configrom.cpp)[ 524] printConfigRom: Config ROM 2520629872: Debug (configrom.cpp)[ 525] printConfigRom: Current Node Id: 0 2520629880: Debug (configrom.cpp)[ 526] printConfigRom: GUID: 0x000AAC07xxxxxxxx 2520629934: Debug (configrom.cpp)[ 527] printConfigRom: Vendor Name: TerraTec? Electronic GmbH 2520629964: Debug (configrom.cpp)[ 528] printConfigRom: Model Name: PHASE X24 FW 2520629974: Debug (configrom.cpp)[ 529] printConfigRom: Node Vendor ID: 0x000aac 2520629982: Debug (configrom.cpp)[ 530] printConfigRom: Model Id: 0x00000007 2520630002: Debug (configrom.cpp)[ 531] printConfigRom: Unit Specifier ID: 0x00a02d 2520630012: Debug (configrom.cpp)[ 532] printConfigRom: Unit version: 0x00010001 2520630020: Debug (configrom.cpp)[ 533] printConfigRom: ISO resource manager: 1 2520630029: Debug (configrom.cpp)[ 534] printConfigRom: Cycle master capable: 1 2520630037: Debug (configrom.cpp)[ 535] printConfigRom: Bus manager capable: 1 2520630046: Debug (configrom.cpp)[ 536] printConfigRom: Cycle clock accuracy: 100 2520630056: Debug (configrom.cpp)[ 538] printConfigRom: Max rec: 6 (max asy payload: 128 bytes) Info Registers

Manufactors Id: bridgeCo Protocol Version: 0x00000001 Bootloader Version: 0x00000000 GUID: 0x000aac07xxxxxxxx Hardware Model ID: 0x00000007 Hardware Revision: 0x00000001 Software Date: 25.07.2005, 13:56:53 Software Id: 0x00000007 Software Version: 0x01200d1f Base Address: 0x20080000 Max. Image Len: 0x00180000 Bootloader Date: 29.07.2005, 14:05:14 Debugger Id: 0x00000000 Debugger Version: 0x00000000

I'm using the firmware version 1.32.13.31, which IMHO is not available online from ftp.terratec.de.

I don't want to overwrite this firmware without a possibility to first read it out or get it as bcd-file, so that I can return to it in case of problems with 1.34.13.31.

If you know a way to read this firmware out of my device or if there is another way to get it, please let me know.

But now to the problems with the cache.

Let me show you the differences in a short first test:

Start ffado-dbus-server for the first time without using an existing cache: $ support/dbus/ffado-dbus-server -c0 2>ffado-dbus-server-second-time.err ...After enough time for the startup to finish, press CTRL-C.

Start ffado-dbus-server a second time now using the cache: $ support/dbus/ffado-dbus-server -c1 2>ffado-dbus-server-second-time.err ...After enough time for the startup to finish, press CTRL-C.

You will see that almost all of the mixer elements aren't exported the second time.

If this is not enough, I can show you more in a second test:

Please first apply a small patch, it extends the meaning of the new option "-c" in a useful third way ;-) $ patch -p1 <test-ffado-cache-debug.diff

Start test-ffado for the first time without using an existing cache: $ tests/test-ffado -v5 -c0 Discover >test-ffado-first-time.out 2>test-ffado-first-time.err $ cp -p ~/.ffado/cache/000aac07xxxxxxxx/60030c03.xml 60030c03-first-time.xml2

Start test-ffado a second time now using the cache: $ tests/test-ffado -v5 -c2 Discover >test-ffado-second-time.out 2>test-ffado-second-time.err $ cp -p ~/.ffado/cache/000aac07xxxxxxxx/60030c03.xml 60030c03-second-time.xml

If you only compare stdout and stderr of both runs, then everything looks ok. But if you compare the two cache-files then a lot of things are missing.

And there are some additional things, which don't look ok to me:

The filename of the cache depends on the node number (buggy getConfigurationIdNumberOfChannel?): Device is Node 0: Relevant output of tests/test-ffado -v6 -c0 Discover: 4168922724: Debug (devicemanager.cpp)[ 306] discover: discovery successful 4168937419: Debug (bebob_avdevice.cpp)[ 273] getConfigurationIdSampleRate: Sample rate 0x03 4168945418: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x07 4168953419: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x05 4168961435: Debug (bebob_avdevice.cpp)[ 342] getConfigurationIdSyncMode: Sync mode 0x6003 4168961478: Debug (bebob_avdevice.cpp)[ 504] saveCache: filename /home/martin/.ffado/cache/000aac07xxxxxxxx/60030c03.xml Device is Node 1: Relevant output of tests/test-ffado -v6 -c0 Discover: 3871827738: Debug (devicemanager.cpp)[ 306] discover: discovery successful 3871842443: Debug (bebob_avdevice.cpp)[ 273] getConfigurationIdSampleRate: Sample rate 0x03 3871854440: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x02 3871866442: Debug (bebob_avdevice.cpp)[ 308] getConfigurationIdNumberOfChannel: Number of channels 0x02 3871878448: Debug (bebob_avdevice.cpp)[ 342] getConfigurationIdSyncMode: Sync mode 0x6003 3871878496: Debug (bebob_avdevice.cpp)[ 504] saveCache: filename /home/martin/.ffado/cache/000aac07xxxxxxxx/60030403.xml

And some values are probably uninitialized:

<Plug63>

<m_subunitType>12</m_subunitType> <m_subunitId>0</m_subunitId> <m_functionBlockType>255</m_functionBlockType> <m_functionBlockId>255</m_functionBlockId> <m_addressType>3</m_addressType> <m_direction>0</m_direction> <m_id>4</m_id> <m_infoPlugType>3</m_infoPlugType> <m_nrOfChannels>2</m_nrOfChannels> <m_name>MSU Synch Input</m_name> <m_clusterInfos0>

<m_index>1</m_index>

<m_portType>229</m_portType>

<m_name></m_name> <m_nrOfChannels>2</m_nrOfChannels> <m_channelInfo0>

<m_streamPosition>0</m_streamPosition> <m_location>1</m_location> <m_name>SynchChannel?1</m_name>

</m_channelInfo0> <m_channelInfo1>

<m_streamPosition>1</m_streamPosition> <m_location>2</m_location> <m_name>SynchChannel?2</m_name>

</m_channelInfo1>

<m_streamFormat>252</m_streamFormat> </m_clusterInfos0>

This also happens within:

<Plug67> <Plug70> <Plug72>

Hope this helps

Attachments

ffado-dbus-server-first-time.err (26.9 kB) - added by slack on 01/12/08 17:06:23.
ffado-dbus-server-second-time.err (4.2 kB) - added by slack on 01/12/08 17:08:12.
test-ffado-cache-debug.diff (2.3 kB) - added by slack on 01/12/08 17:09:36.
test-ffado-first-time.out (23.9 kB) - added by slack on 01/12/08 17:11:26.
test-ffado-first-time.err (18.3 kB) - added by slack on 01/12/08 17:13:28.
60030c03-first-time.xml (231.2 kB) - added by slack on 01/12/08 17:14:50.
60030c03-first-time.2.xml (231.2 kB) - added by slack on 01/12/08 17:15:44.
60030c03-second-time.xml (108.6 kB) - added by slack on 01/12/08 17:30:45.
ffado-cache-debugging.tar.gz (24.2 kB) - added by slack on 01/13/08 02:06:35.
ffado_issue65.patch (1.0 kB) - added by wagi on 01/21/08 12:19:42.
bebob_functionblock_deserialize.diff (380 bytes) - added by slack on 01/24/08 12:45:41.
ffado-cache-debugging_2.tar.gz (81.8 kB) - added by slack on 04/29/08 12:01:08.

Change History

01/12/08 17:06:23 changed by slack

  • attachment ffado-dbus-server-first-time.err added.

01/12/08 17:08:12 changed by slack

  • attachment ffado-dbus-server-second-time.err added.

01/12/08 17:09:36 changed by slack

  • attachment test-ffado-cache-debug.diff added.

01/12/08 17:11:26 changed by slack

  • attachment test-ffado-first-time.out added.

01/12/08 17:13:28 changed by slack

  • attachment test-ffado-first-time.err added.

01/12/08 17:14:50 changed by slack

  • attachment 60030c03-first-time.xml added.

01/12/08 17:15:44 changed by slack

  • attachment 60030c03-first-time.2.xml added.

01/12/08 17:29:56 changed by slack

Oops, made some mistakes!

Start ffado-dbus-server for the first time without using an existing cache: $ support/dbus/ffado-dbus-server -c0 2>ffado-dbus-server-first-time.err ...After enough time for the startup to finish, press CTRL-C.

As I realize now after attaching the last file twice (sorry), how big the xml-files are, I will only attach the second xml-file for now, because I think the differences are important for you.

Peter, do you really need the remaining logs from the second example? Please let me know.

01/12/08 17:30:45 changed by slack

  • attachment 60030c03-second-time.xml added.

01/13/08 02:06:35 changed by slack

  • attachment ffado-cache-debugging.tar.gz added.

01/13/08 02:16:17 changed by slack

After a small break, mastering the attachments, second try!

I have made an archive of all the files, so the previous attachments aren't needed anymore.

Peter, can you please remove them, since they are now only cluttering up this ticket.

Thanks!

01/20/08 02:32:33 changed by ppalmers

  • owner set to wagi.

this should have all info we need to fix it.

Assigning to wagi since he's the cache guy.

01/20/08 02:33:00 changed by ppalmers

  • device_name set to PHASE X24 FW.

01/21/08 12:19:42 changed by wagi

  • attachment ffado_issue65.patch added.

01/21/08 12:21:38 changed by wagi

slack, could you try again with the patch I've attached? It is just a shot into the dark, but maybe we are lucky.

http://subversion.ffado.org/attachment/ticket/65/ffado_issue65.patch

01/24/08 12:39:55 changed by slack

Thank you for your help, but I'm sorry, this patch does not change anything.

So, in order to help you a little bit, I have identified the location of the first parsing failure.

In "./src/libavc/general/avc_subunit.cpp" line 288 Subunit::deserialize() calls deserializePlugVector(). Then in "./src/libavc/general/avc_plug.cpp" line 2381 plugManager.getPlug() returns NULL. After that Subunit::deserialize() deletes pSubunit and returns 0.

Here is the corresponding part of the cache file:

<?xml version="1.0"?>

<ffado_cache>

<CacheVersion?>1.999.14-874M</CacheVersion>

<Subunit0>

<m_sbType>1</m_sbType>

<m_sbId>0</m_sbId>

<m_plugs0>

<global_id>0</global_id>

</m_plugs0>

And I think I have found also a bug in "src/bebob/bebob_functionblock.cpp".

FunctionBlock::deserialize() always returns 0. If result is false, it should delete pFB and return 0, else return pFB.

Hope this helps ...

01/24/08 12:45:41 changed by slack

  • attachment bebob_functionblock_deserialize.diff added.

04/26/08 10:42:03 changed by ppalmers

what's the status on this?

04/28/08 14:05:30 changed by slack

Thank you for asking.

IMHO, the parsing of the cache still does not work.

But since the cache is disabled by default, ffado-dbus-server is at least usable out of the box.

The following tests were done using ffado-svn1052.

Output of ffado-dbus-server with cache disabled (default):

$ ffado-dbus-server

...

showDeviceInfo: --- Device 0 --- This is a BeBoB::Terratec::PhaseSeriesDevice? Device is a BeBoB device Attached to port.......: 0 (ohci1394) Node...................: 1 Vendor name............: TerraTec? Electronic GmbH Model name.............: PHASE X24 FW GUID...................: 000aac0700342118 Assigned ID....: dev0 showDeviceInfo: Clock sync sources: showDeviceInfo: Type: Internal , Id: 67, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: Internal (CSP) Element: Created Element on '/org/ffado/Control/DeviceManager' Container: Created Container on '/org/ffado/Control/DeviceManager' createHandler: Creating handler for '000aac0700342118' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118' createHandler: Creating handler for 'ConfigRom?' createHandler: Source is a ConfigRom? Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/ConfigRom' ConfigRomX: Created ConfigRomX on '/org/ffado/Control/DeviceManager/000aac0700342118/ConfigRom' createHandler: Creating handler for 'Generic' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic' createHandler: Creating handler for 'ClockSelect?' createHandler: Source is a Control::AttributeEnum? Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic/ClockSelect' AttributeEnum?: Created Enum on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic/ClockSelect' createHandler: Creating handler for 'Mixer' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer' createHandler: Creating handler for 'Selector_1' createHandler: Source is a Control::Discrete Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_1' Discrete: Created Discrete on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_1' createHandler: Creating handler for 'Selector_2' createHandler: Source is a Control::Discrete Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_2' Discrete: Created Discrete on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_2' createHandler: Creating handler for 'Selector_3' createHandler: Source is a Control::Discrete Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_3' Discrete: Created Discrete on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_3' createHandler: Creating handler for 'Selector_4' createHandler: Source is a Control::Discrete Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_4' Discrete: Created Discrete on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_4' createHandler: Creating handler for 'Feature_1' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_1' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_1' createHandler: Creating handler for 'Feature_2' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_2' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_2' createHandler: Creating handler for 'Feature_3' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_3' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_3' createHandler: Creating handler for 'Feature_4' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_4' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_4' createHandler: Creating handler for 'Feature_5' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_5' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_5' createHandler: Creating handler for 'Feature_6' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_6' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_6' createHandler: Creating handler for 'Feature_7' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_7' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_7' createHandler: Creating handler for 'Feature_8' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_8' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_8' createHandler: Creating handler for 'EnhancedMixer?_1' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_1' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_1' createHandler: Creating handler for 'EnhancedMixer?_2' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_2' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_2' createHandler: Creating handler for 'EnhancedMixer?_3' createHandler: Source is a Control::Continuous Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_3' Continuous: Created Continuous on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer/EnhancedMixer_3' main: DBUS test service running main: press ctrl-c to stop it & exit

Result: ffadomixer works.

$ ffadomixer Found device 0: 000aac0700342118

Found (000aac0700342118, AAC, 7) TerraTec? Electronic GmbH PHASE X24 FW

PhaseX24Control Init PhaseX24 mixer window out34 volume is 0 analogin volume is 0 master volume is 0 outspdif volume is 0 out12 volume is 0 spdifin volume is 0 syncsource state is 0 outsource12 state is 0 outsourcespdif state is 0 outsource34 state is 4

Output of ffado-dbus-server with cache enabled:

$ ffado-dbus-server -c 1

...

showDeviceInfo: --- Device 0 --- showDevice: This is a BeBoB::Terratec::PhaseSeriesDevice? showDevice: Device is a BeBoB device showDevice: Attached to port.......: 0 (ohci1394) showDevice: Node...................: 1 showDevice: Vendor name............: TerraTec? Electronic GmbH showDevice: Model name.............: PHASE X24 FW showDevice: GUID...................: 000aac0700342118 showDevice: Assigned ID....: dev0 showDeviceInfo: Clock sync sources: showDeviceInfo: Type: Internal , Id: 67, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: Internal (CSP) Element: Created Element on '/org/ffado/Control/DeviceManager' Container: Created Container on '/org/ffado/Control/DeviceManager' createHandler: Creating handler for '000aac0700342118' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118' createHandler: Creating handler for 'ConfigRom?' createHandler: Source is a ConfigRom? Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/ConfigRom' ConfigRomX: Created ConfigRomX on '/org/ffado/Control/DeviceManager/000aac0700342118/ConfigRom' createHandler: Creating handler for 'Generic' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic' createHandler: Creating handler for 'ClockSelect?' createHandler: Source is a Control::AttributeEnum? Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic/ClockSelect' AttributeEnum?: Created Enum on '/org/ffado/Control/DeviceManager/000aac0700342118/Generic/ClockSelect' createHandler: Creating handler for 'Mixer' createHandler: Source is a Control::Container Element: Created Element on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer' Container: Created Container on '/org/ffado/Control/DeviceManager/000aac0700342118/Mixer' main: DBUS test service running main: press ctrl-c to stop it & exit

Result: ffadomixer cant't get any values:

$ ffadomixer Found device 0: 000aac0700342118

Found (000aac0700342118, AAC, 7) TerraTec? Electronic GmbH PHASE X24 FW

PhaseX24Control Init PhaseX24 mixer window Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_4 on server org.ffado.Control out34 volume is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_6 on server org.ffado.Control analogin volume is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_1 on server org.ffado.Control master volume is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_5 on server org.ffado.Control outspdif volume is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_3 on server org.ffado.Control out12 volume is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_7 on server org.ffado.Control spdifin volume is 0 Failed to get Discrete /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_4 on server org.ffado.Control syncsource state is 0 Failed to get Discrete /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_1 on server org.ffado.Control outsource12 state is 0 Failed to get Discrete /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_3 on server org.ffado.Control outsourcespdif state is 0 Failed to get Discrete /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Selector_2 on server org.ffado.Control outsource34 state is 0 Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_2 on server org.ffado.Control Failed to get Continuous /org/ffado/Control/DeviceManager/000aac0700342118/Mixer/Feature_8 on server org.ffado.Control

P.S.:

Personally, I think the cache is not a "must have" feature of ffado. If the caching also does not work for other devices, what about simply removing it? It also messes up the otherwise very clean code. I won't miss it... ;-)

04/29/08 00:10:26 changed by wagi

In order to get this working, I need the debug output from the discovering '-v 6' and the cache file (~/.ffado/.../GUID.xml). Please add this as attachemnt if that works with trac. Otherwise you can send it the mailing list directly.

thanks, daniel

04/29/08 11:59:45 changed by slack

Here is the requested debug output of ffado-dbus-server:

First ffado-dbus-server doing a complete discovery:

ffado-dbus-server -v6 >ffado-dbus-server-v6.stdout 2>ffado-dbus-server-v6.stderr

Then ffado-dbus-server trying to use the generated cache:

ffado-dbus-server -v6 -c1 >ffado-dbus-server-v6-c1.stdout 2>ffado-dbus-server-v6-c1.stderr

You find all files in 'ffado-cache-debugging_2.tar.gz'.

Hope this helps!

04/29/08 12:01:08 changed by slack

  • attachment ffado-cache-debugging_2.tar.gz added.

04/29/08 23:59:06 changed by wagi

Thanks for the files.

Can also attache the cache file (/home/martin/.ffado/cache/000aac0700342118/60030c04.xml).

Then I should have everything to get it fixed.

04/30/08 11:17:40 changed by slack

Oh, my bad! Forgot to mention it in the last post.

The cache file generated/used while capturing the debug output is of course also included in the archive.

And if you need some testing on the real hardware, I will be very happy to help you.

Thanks!

05/03/08 13:06:05 changed by wagi

So I have checked in a new version for the caching code r1109. All things you have reported should now be fixed. Thanks a lot for the great report. I should have responded more quickly. Sorry about that.

Please test the new version. Hopefully, it should fix this problem.

05/03/08 13:06:37 changed by wagi

of course it is r1110 not r1109

05/04/08 15:04:48 changed by ppalmers

Should be fixed in current SVN [1118], or starting from beta4. Could you please confirm this?

05/06/08 16:25:25 changed by slack

Sorry for being late, but the new Slackware 12.1 took all my time :-)

The first version checked was svn1110. After adding the missing 'envCACHEDIR? = "~/.ffado"' line to Sconstruct, I could try it out.

Finally I also checked out svn1127 to repeat the check with the latest version.

And these are my findings:

The deserializing of the cache is mostly working!

I only noticed one small missing piece: The "Clock sync source" (my device has only one: "Internal (CSP)") is not read out of the cache.

And there seems to be also a small problem with the logging system.

The logging output starts as usual but after a short time (around the "showDevice:" lines) it stops.

And it seems that everething is stored somewhere, because after pressing CTRL-C, the complete log appears at once before the process ends.

05/06/08 16:47:20 changed by slack

UPDATE:

After some additional runs of ffado-dbus-server in a console window, I realized that NOT everything is shown after pressing CTRL-C, only the last ~10k of the logging is finally shown.

05/07/08 00:30:38 changed by wagi

  • status changed from new to assigned.

Thanks for testing!

  • The r1110 version had still the CACHEDIR problem in it. has been fixed with a later version
  • Sync source: ok, I know where the problem is. I'll fix it later. Basically, the problem is that the device doesn's support any clock sync source switching and therefore there is no value stored in the corresponding member variable. When serializing it won't write anything in the file and later the deserializing code can't read anything.
  • The logging is not really a problem with the caching code. If this is a real problem we might want to open a new ticket for it.

05/07/08 11:14:17 changed by slack

Ah, thank you for the explanation.

Hmmm... I believe there *is* something written.

A short search for "CSP" in the cache file shows that most if not all of the necessary information is already there.

If this values are correctly read back, then everythink should be working...

Or is there something important missing in the cache?

And sorry for messing up this ticket with the unrelated logging issue. It has of course nothing to do with the new working caching code.

Personally, I don't want to open a new ticket because of this minor issue.

05/18/08 08:34:24 changed by wagi

There is a problem with the sync source code with and without the caching feature.

Next round bug fixing...

05/25/08 05:21:33 changed by slack

Update:

I noticed a segfault after starting ffado-dbus-server a few times. Opened a new ticket (#119) because I thought it is an unrelated new issue.

I have tracked down the problem and the patch (see #119) fixes also the missing "Clock sync source".

06/01/08 03:56:21 changed by ppalmers

  • status changed from assigned to closed.
  • resolution set to fixed.

as far as I can tell, the issues with the cache are resolved. There are still some problems with sync source selection, but those are a separate issue.