New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 795014 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

[chameleon_audio: peach_pi/Daisy] audio_AudioBasicHDMI tests are failing with "Unhandled Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)"

Project Member Reported by sontis@chromium.org, Dec 14 2017

Issue description

Chrome Version: R65-10210.0.0
OS: Chrome

audio_AudioBasicHeadphone and audio_AudioBasicHeadphone.suspend tests are failing with "Unhandled Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)"

Test results  link: https://stainless.corp.google.com/search?exclude_cts=true&exclude_non_release=true&board=%5Epeach%5C_pi%24&suite=%5Echameleon%5C_audio%5C_perbuild%24&view=matrix&col=build&row=test&first_date=20171208&last_date=20171214

It started from R65-10210.0.0 build.


From debug logs:
============================
12/12 22:34:41.248 DEBUG|          ssh_host:0301| Running (ssh) 'true' from 'collect_client_job_results|wait_up|is_up|ssh_ping|run|run_very_slowly'
12/12 22:34:42.278 DEBUG|      abstract_ssh:0670| Host chromeos2-row10-rack10-host11 is now up
12/12 22:34:42.278 DEBUG|            runner:0089| result tools are already deployed to chromeos2-row10-rack10-host11.
12/12 22:34:42.279 DEBUG|            runner:0100| Getting directory summary for /tmp/sysinfo/autoserv-foXNpb/results/default
12/12 22:34:42.306 DEBUG|          ssh_host:0301| Running (ssh) '/usr/local/autotest/result_tools/utils.py -p /tmp/sysinfo/autoserv-foXNpb/results/default -m 20000' from '_do_run|execute_control|collect_client_job_results|run_on_client|run|run_very_slowly'
12/12 22:34:43.454 DEBUG|             utils:0280| [stdout] 2017-12-12 22:34:41,865 Running result_tools/utils on path: /tmp/sysinfo/autoserv-foXNpb/results/default
12/12 22:34:43.454 DEBUG|             utils:0280| [stdout] 2017-12-12 22:34:41,866 Throttle result size to : 19 MB
12/12 22:34:43.470 DEBUG|             utils:0280| [stdout] 2017-12-12 22:34:41,882 Directory summary of /tmp/sysinfo/autoserv-foXNpb/results/default is saved to file /tmp/sysinfo/autoserv-foXNpb/results/default/dir_summary_1513146881.json.
12/12 22:34:43.470 DEBUG|             utils:0280| [stdout] 2017-12-12 22:34:41,882 Skip throttling /tmp/sysinfo/autoserv-foXNpb/results/default: size=924311, throttle_probability=22.1570445445
12/12 22:34:43.482 DEBUG|      abstract_ssh:0413| get_file. source: /tmp/sysinfo/autoserv-foXNpb/results/default/, dest: /usr/local/autotest/results/162170657-chromeos-test, delete_dest: False,preserve_perm: True, preserve_symlinks:True
12/12 22:34:43.482 DEBUG|      abstract_ssh:0425| Using Rsync.
12/12 22:34:43.483 DEBUG|             utils:0212| Running 'rsync -l  --timeout=1800 --rsh='/usr/bin/ssh -a -x  -o Protocol=2 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=900 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -l root -p 22' -az --no-o --no-g  root@chromeos2-row10-rack10-host11:"/tmp/sysinfo/autoserv-foXNpb/results/default/" "/usr/local/autotest/results/162170657-chromeos-test"'
12/12 22:34:45.021 DEBUG|          base_job:0250| Value of client.sysinfo is unchanged, skipping import
12/12 22:34:45.021 DEBUG|          base_job:0253| Importing client.harness from state file /usr/local/autotest/results/162170657-chromeos-test/control.autoserv.state
12/12 22:34:45.021 DEBUG|          base_job:0253| Importing client.steps from state file /usr/local/autotest/results/162170657-chromeos-test/control.autoserv.state
12/12 22:34:45.022 DEBUG|          base_job:0253| Importing client._record_indent from state file /usr/local/autotest/results/162170657-chromeos-test/control.autoserv.state
12/12 22:34:45.022 DEBUG|          base_job:0250| Value of global_properties.max_result_size_KB is unchanged, skipping import
12/12 22:34:45.022 DEBUG|          base_job:0250| Value of global_properties.tag is unchanged, skipping import
12/12 22:34:45.022 DEBUG|          base_job:0250| Value of global_properties.test_retry is unchanged, skipping import
12/12 22:34:45.022 DEBUG|          base_job:0250| Value of global_properties.fast is unchanged, skipping import
12/12 22:34:45.024 DEBUG|          base_job:0399| Persistent state client.* deleted
12/12 22:34:45.025 DEBUG|          autotest:1151| Autotest job finishes.
12/12 22:34:45.025 DEBUG|      abstract_ssh:0413| get_file. source: /tmp/autoserv-zMY7U4/sysinfo.pickle, dest: /tmp/tmpZHBaIh, delete_dest: False,preserve_perm: True, preserve_symlinks:False
12/12 22:34:45.026 DEBUG|      abstract_ssh:0425| Using Rsync.
12/12 22:34:45.026 DEBUG|             utils:0212| Running 'rsync -L  --timeout=1800 --rsh='/usr/bin/ssh -a -x  -o Protocol=2 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=900 -o ServerAliveCountMax=3 -o ConnectionAttempts=4 -l root -p 22' -az --no-o --no-g  root@chromeos2-row10-rack10-host11:"/tmp/autoserv-zMY7U4/sysinfo.pickle" "/tmp/tmpZHBaIh"'
12/12 22:34:46.444 DEBUG|              test:0420| after_iteration_hooks completed
12/12 22:34:46.445 WARNI|              test:0637| The test failed with the following exception
Traceback (most recent call last):
  File "/usr/local/autotest/client/common_lib/test.py", line 631, in _exec
    _call_test_function(self.execute, *p_args, **p_dargs)
  File "/usr/local/autotest/client/common_lib/test.py", line 837, in _call_test_function
    raise error.UnhandledTestFail(e)
UnhandledTestFail: Unhandled Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)
Traceback (most recent call last):
  File "/usr/local/autotest/client/common_lib/test.py", line 831, in _call_test_function
    return func(*args, **dargs)
  File "/usr/local/autotest/client/common_lib/test.py", line 495, in execute
    dargs)
  File "/usr/local/autotest/client/common_lib/test.py", line 362, in _call_run_once_with_retry
    postprocess_profiled_run, args, dargs)
  File "/usr/local/autotest/client/common_lib/test.py", line 400, in _call_run_once
    self.run_once(*args, **dargs)
  File "/usr/local/autotest/server/site_tests/audio_AudioBasicHDMI/audio_AudioBasicHDMI.py", line 124, in run_once
    audio_facade.set_chrome_active_node_type('HDMI', None)
  File "/usr/local/autotest/server/cros/multimedia/audio_facade_adapter.py", line 266, in set_chrome_active_node_type
    output_node_type, input_node_type)
  File "/usr/local/autotest/server/cros/multimedia/remote_facade_factory.py", line 60, in __call__
    return self.__call_method(self.__name, *args, **dargs)
  File "/usr/local/autotest/server/cros/multimedia/remote_facade_factory.py", line 171, in __call_proxy
    return call_rpc_with_log()
  File "/usr/local/autotest/server/cros/multimedia/remote_facade_factory.py", line 155, in call_rpc_with_log
    raise Exception('%s: %s' % (keyword, reason))
Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)

12/12 22:34:46.446 DEBUG|              test:0642| Running cleanup for test.
12/12 22:34:46.577 DEBUG|             utils:0280| [client] 22:34:44 INFO | Dispatching method <bound method SystemFacadeNative.set_scaling_governor_mode of <autotest_lib.client.cros.multimedia.system_facade_native.SystemFacadeNative object at 0xb4f661d0>> with args (0, 'interactive')


 

Comment 1 by ka...@chromium.org, Dec 14 2017

Owner: cychiang@chromium.org
Status: Assigned (was: Untriaged)
https://crosland.corp.google.com/log/10209.0.0..10210.0.0

Hi Jimmy, could
https://chromium-review.googlesource.com/c/chromiumos/third_party/adhd/+/818372
be the issue here?
Cc: marc...@chromium.org
Hi Kalin, the diff list does not look right.
The last good version is 10196.

https://crosland.corp.google.com/log/10196.0.0..10210.0.0

On the other hand, on daisy, it failed starting from 10208.

https://wmatrix.googleplex.com/platform/unfiltered?hide_missing=True&tests=audio_AudioBasicHDMI&days_back=20&platforms=daisy


HDMI is not detected.

Output Nodes:
	Stable Id	 ID	 Vol   Plugged	L/R swapped	      Time Hotword	Type		 Name
	(9e934263)	6:0	   75      yes	            no	1513146783        	HEADPHONE       *Headphone
	(72a57953)	6:1	  100      yes	            no	1513146782        	INTERNAL_SPEAKER Speaker
	(35ebf3cc)	6:2	  100       no	            no	         0        	HDMI             HDMI

The log shows:

2017-12-13T06:33:41.324562+00:00 ERR cras_server[19357]: Timeout to read EDID from /sys/devices/platform/exynos-drm/drm/card0/card0-HDMI-A-1/edid

2017-12-13T06:34:12.844046+00:00 ERR cras_server[19357]: Timeout to read EDID from /sys/devices/platform/exynos-drm/drm/card0/card0-HDMI-A-1/edid

The only change that is related to drm landed in 10208:

https://chromium-review.googlesource.com/#/c/chromiumos/third_party/kernel/+/314891/


It turns out that the path to EDID file is changed from

/sys/devices/platform/exynos-drm/drm/card0/card0-HDMI-A-1/edid

to

/sys/devices/platform/exynos-drm/drm/card1/card1-HDMI-A-1/edid


Hi marcheu@,
Is the change to the EDID path expected ?
If so, we need to change the UCM file for these 6 boards:

https://cs.corp.google.com/search/?q=card0-HDMI-A-1/edid+package:%5Echromeos_public$&type=cs

Thanks!



Project Member

Comment 4 by bugdroid1@chromium.org, Dec 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/84e20a3199157d7f7d5d23b92865eeff31e02686

commit 84e20a3199157d7f7d5d23b92865eeff31e02686
Author: Cheng-Yi Chiang <cychiang@chromium.org>
Date: Fri Dec 15 18:10:46 2017

daisy*: Change EDID path for exynos boards

After the change of VGEM in 3.8 kernel: crosreview.com/314891,
the EDID path is changed.

Fix the EDID path in the UCM file.

BUG= chromium:795014 
TEST=run audio_AudioBasicHDMI test on daisy

Change-Id: I72e0bb0461a20b565bd9bbe957074ff1a7e5a455
Reviewed-on: https://chromium-review.googlesource.com/828643
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Wu-Cheng Li <wuchengli@chromium.org>

[modify] https://crrev.com/84e20a3199157d7f7d5d23b92865eeff31e02686/ucm-config/daisy/DAISY-I2S/HiFi.conf
[modify] https://crrev.com/84e20a3199157d7f7d5d23b92865eeff31e02686/ucm-config/daisy_spring/DAISY-I2S/HiFi.conf
[modify] https://crrev.com/84e20a3199157d7f7d5d23b92865eeff31e02686/ucm-config/daisy/DAISY-I2S-98090/HiFi.conf
[modify] https://crrev.com/84e20a3199157d7f7d5d23b92865eeff31e02686/ucm-config/daisy_skate/DAISY-I2S/HiFi.conf

Comment 5 by sontis@chromium.org, Dec 15 2017

Summary: [chameleon_audio: peach_pi/Daisy] audio_AudioBasicHDMI tests are failing with "Unhandled Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)" (was: [chameleon_audio: peach_pi ] audio_AudioBasicHDMI tests are failing with "Unhandled Exception: CrasUtilsError: Can not find unique node id from node type HDMI (RPC: audio.set_chrome_active_node_type)")
Noticed same issue on daisy also.
https://stainless.corp.google.com/search?exclude_cts=true&exclude_non_release=true&board=%5Edaisy%24&suite=%5Echameleon%5C_audio%5C_perbuild%24&view=matrix&col=build&row=test&first_date=20171209&last_date=20171215
We shouldn't hardcode paths to EDID like that. Can you fix it to look for the right connector?
Re#6
I agree that current method is not optimal.

https://cs.corp.google.com/search/?q=edidfile+package:%5Echromeos_public$&type=cs

The paths are like:

/sys/devices/platform/exynos-drm/drm/card0/card0-HDMI-A-1/edid
/sys/class/drm/card2-HDMI-A-1/edid
/sys/class/drm/card1-DP-1/edid

We can loop through all the files named "edid" under
these directories:

/sys/devices/platform/exynos-drm/drm/
/sys/class/drm/

But if there are more than one HDMI or DP available, we will have problem distinguishing them.

e.g. on veyron_jerry:
there are:
/sys/class/drm/card1/card1-eDP-1/edid
/sys/class/drm/card1/card1-HDMI-A-1/edid

We can still try to read from it. The incorrect one has no data (eDP one)
Not sure if that is reliable enough.

Do you have better suggestions that we can query the right edid path ?

Thanks!
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 18 2017

@7:

Yes you will have to loop over the connectors and find the ones which are connected (you can read "status" in each directory to find connected ones).
Status: Fixed (was: Assigned)
Thank you! That makes sense.
Created https://bugs.chromium.org/p/chromium/issues/detail?id=796088 to track.
Closing this one.

Comment 11 by ka...@chromium.org, Dec 27 2017

Status: Verified (was: Fixed)
https://screenshot.googleplex.com/OZNB7G9KXx3

Sign in to add a comment