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

Issue 722143 link

Starred by 4 users

Issue metadata

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

Blocked on:
issue 371230
issue 611925



Sign in to add a comment

/dev/snd/seq missing group="audio" for kernel 4.4

Reported by sofia.ga...@gmail.com, May 14 2017

Issue description

UserAgent: Mozilla/5.0 (X11; CrOS i686 9000.91.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.122 Safari/537.36
Platform: 56.3.80 (Developer Build - neverware) developer-build chromeover32

Example URL:
https://airtightinteractive.com/demos/webmiditest/

Steps to reproduce the problem:
1. Visit the URL.

What is the expected behavior?
No error messages should appear.

What went wrong?
An error message saying 

"Initializing MIDI...
MIDI Init Error. Error code: 11"

pops up.

Did this work before? Yes Don't know. It worked a month ago.

Is it a problem with Flash or HTML5? N/A

Does this work in other browsers? Yes

Chrome version: 56.0.2924.122  Channel: n/a
OS Version: 9000.91.0
Flash Version: Shockwave Flash 20170509.1 r999

Contents of chrome://gpu: 
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Panel Fitting: Hardware accelerated
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
decode_encode_srgb_for_generatemipmap
disable_discard_framebuffer
disable_framebuffer_cmaa
msaa_is_slow
scalarize_vec_and_mat_constructor_args
Problems Detected
Framebuffer discarding causes jumpy scrolling on Mali drivers: 301988
Applied Workarounds: disable_discard_framebuffer
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in ChromeOS handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	5/14/2017, 11:46:37 PM
Chrome version	Chrome/56.0.2924.122
Operating system	Linux 4.4.14+
Software rendering list version	12.06
Driver bug list version	9.24
ANGLE commit id	a4aaa2de57dc
2D graphics backend	Skia/56 dd45f8195783efc7b8044b006eae5ea5ac127cc2
Command Line Args	--ppapi-flash-path=/opt/google/chrome/pepper/libpepflashplayer.so --ppapi-flash-version=20170509.1 --ui-prioritize-in-gpu-process --gpu-sandbox-failures-fatal=no --enable-logging --log-level=1 --use-cras --enable-wayland-server --user-data-dir=/home/chronos --max-unused-resource-memory-usage-percentage=5 --system-developer-mode --login-profile=user --default-wallpaper-is-oem --aura-legacy-power-button --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/oem_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/oem_small.jpg --default-wallpaper-is-oem --enable-prefixed-encrypted-media --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --vmodule=screen_locker=2,webui_screen_locker=2,lock_state_controller=2,webui_login_view=2,power_button_observer=2,*ui/display/chromeos*=1,*ash/display*=1,*ui/ozone*=1,*zygote*=1,*plugin*=2,auto_enrollment_controller=1,*chromeos/login/*=1 --login-manager --first-exec-after-boot
Driver Information
Initialization time	1106
In-process GPU	false
Sandboxed	true
GPU0	VENDOR = 0x8086, DEVICE= 0x0116
Optimus	false
AMD switchable	false
Driver vendor	Mesa
Driver version	12.1.0
Driver date	
Pixel shader version	1.30
Vertex shader version	1.30
Max. MSAA samples	4
Machine model name	
Machine model version	
GL_VENDOR	Intel Open Source Technology Center
GL_RENDERER	Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2
GL_VERSION	3.0 Mesa 12.1.0-devel (git-b010fa8)
GL_EXTENSIONS	GL_3DFX_texture_compression_FXT1 GL_AMD_draw_buffers_blend GL_AMD_performance_monitor GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_trinary_minmax GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_object_purgeable GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_draw_parameters GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sync GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_window_pos GL_ATI_blend_equation_separate GL_ATI_draw_buffers GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_texture GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_gpu_program_parameters GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_IBM_multimode_draw_arrays GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate GL_INTEL_performance_query GL_KHR_context_flush_control GL_KHR_debug GL_KHR_robustness GL_MESA_pack_invert GL_MESA_texture_signed_rgba GL_MESA_window_pos GL_NV_blend_square GL_NV_conditional_render GL_NV_depth_clamp GL_NV_light_max_exponent GL_NV_packed_depth_stencil GL_NV_primitive_restart GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_env_combine4 GL_NV_texture_rectangle GL_OES_EGL_image GL_OES_read_format GL_S3_s3tc GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays
Disabled Extensions	
Window system binding vendor	SGI
Window system binding version	1.4
Window system binding extensions	GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_OML_swap_method GLX_SGI_swap_control GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_INTEL_swap_event
Window manager	Unknown
Compositing manager	No
Direct rendering	Yes
Reset notification strategy	0x8261
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRA_8888	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only

Midi instruments can't be played in the browser.
 
Components: -Internals>Media OS>Kernel>Audio Internals>Media>Audio
Labels: Needs-Feedback
reporter@, I don't repro this bug on Win/Mac/CrOS LINK device
are you seeing it on what model of ChromeBook?
Can you upgrade to a latest version of Chrome on CrOS?
Status: Untriaged (was: Unconfirmed)
See the error in Chrome OS 9565.0.0;60.0.3102.0 on kevin. 
Screenshot 2017-05-19 at 11.46.55 AM.png
217 KB View Download
Components: -Internals>Media>Audio
this may be a Kevin device specific bug. I have tried x86 based LINK Chromebook and ARM based NYAN_Blaze Chromebook. I couldn't repro this bug. 
ChromeOS team, can you triage? 

Comment 4 by dgreid@chromium.org, May 23 2017

Owner: pmalani@chromium.org
Status: Assigned (was: Untriaged)
pmalani, not directly related to your current midi work, but you're the best equipped on the team for this:)
Sounds good. I'll try to get hold of a kevin device.
Some initial observations.

- MidiManagerAlsa::StartInitialization() is failing in the very beginning i.e snd_seq_open() fails.

- This doesn't seem to be SELinux related (fails in Permissive mode as well).


kevin uses a 4.4 kernel, and veyron_minnie (an example of a device on which WebMIDI is working) uses 3.14, so I wouldn't be surprised if a patch from the newer kernel has introduced this issue.
Cc: agoode@chromium.org
Can you tell me the output of err.name? I am not 100% sure what err.code maps to.


I will try building a VM with kernel 4.4 and debug this.
Cc: -agoode@chromium.org pmalani@chromium.org
Owner: agoode@chromium.org
Status: Started (was: Assigned)
Components: -OS>Kernel>Audio Blink>WebMIDI
It's a permissions issue, /dev/snd/seq should have group audio, not root.
Blockedon: 371230
+pmalani fyi
It may be a time to revisit https://bugs.chromium.org/p/chromium/issues/detail?id=371230#c15 and add some VMTests or HWTests?

pmalani@, what do you think?
Even after switching to use your midi service, this kind of issue would continue bothering us, I guess.
Cc: vapier@chromium.org
Summary: /dev/snd/seq missing group="audio" for kernel 4.4 (was: Midi input doesn't work)
vapier:

Do you have an idea where the permissions should be set? It looks like you cleaned up the midi node code some time ago in  crbug.com/611925 .

Other static nodes appear to have the correct permissions, /dev/fuse and /dev/snd/timer are correct.


50-udev-default.rules contains:
SUBSYSTEM=="sound", GROUP="audio", \
  OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"

But I guess that isn't working?
there might have been a change on the kernel side here, but it's hard to say.  at any rate, the issue is that the udev static_node rules expect the device nodes to exist before udev starts up.  in our current init scripts, that is not the case -- we always launch udev first and then run the static node tool later on.

snd/timer is working because that driver is built into the kernel (well, it's a module on x86 for some reason, but builtin everywhere else), but snd/seq is always a module.

at any rate, this CL should fix it:
https://chromium-review.googlesource.com/527486
Re: Comment #16: Using the new service will remove some of these issues. Since we'll be talking directly to /dev/snd/midi nodes, As long as we have permission to access /dev/snd, we should be fine. The approach of not using alsa, will also save us from some of the pains associated with uprev-ing the alsa seq driver
Project Member

Comment 20 by bugdroid1@chromium.org, Jun 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/7d488e958b085dcee7e23cbbdaca4fc4d34c7c20

commit 7d488e958b085dcee7e23cbbdaca4fc4d34c7c20
Author: Mike Frysinger <vapier@chromium.org>
Date: Sat Jun 10 18:55:38 2017

init: move static dev node creation before udev startup

In order for udev static_node rules to apply to the device nodes, the
nodes have to exist in /dev before udev runs.  It reads & applies those
rules only once during its startup.  So move the static dev node step
before we launch udev.

In terms of performance, this should not be a big deal as this tool
usually processes <10 lines of text and creates <10 dev nodes and thus
takes ~10msec to run.

BUG= chromium:722143 
TEST=precq passes
TEST=/dev/snd/seq has group set to audio instead of root
CQ-DEPEND=CL:527463

Change-Id: Ic72ff1ae17cbae257c66cfa28947404afae6d7b5
Reviewed-on: https://chromium-review.googlesource.com/527486
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Adam Goode <agoode@chromium.org>

[modify] https://crrev.com/7d488e958b085dcee7e23cbbdaca4fc4d34c7c20/init/upstart/udev.conf
[delete] https://crrev.com/da3bd720f3242b2dbeb50565fc3f0550cb2534f5/init/upstart/static-nodes.conf

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/06ace7b71f732590cbf6d10fbd37f8d936ab7a10

commit 06ace7b71f732590cbf6d10fbd37f8d936ab7a10
Author: Mike Frysinger <vapier@chromium.org>
Date: Sat Jun 10 18:55:37 2017

chromeos-init: drop static-nodes.conf install

This init script is being merged into udev.conf, so stop installing it.

BUG= chromium:722143 
TEST=precq passes
CQ-DEPEND=CL:527486

Change-Id: Icca5301acce8f306ea6fdbc0a91947895fbc61c3
Reviewed-on: https://chromium-review.googlesource.com/527463
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Adam Goode <agoode@chromium.org>

[modify] https://crrev.com/06ace7b71f732590cbf6d10fbd37f8d936ab7a10/chromeos-base/chromeos-init/chromeos-init-9999.ebuild

the issue should be fixed now in R61.  i'll leave it up to you guys whether you want to backport to R60, and what to do about tests.
Blockedon: 611925
If your change is safe to be merged to 60, could you make a merge request?

We will continue to discuss testing at  crbug.com/371230 .

So, it's fine to close this bug with the last change, or after merging it to 60.
Labels: Merge-Request-60 M-60
Project Member

Comment 26 by sheriffbot@chromium.org, Jun 15 2017

Labels: -Merge-Request-60 Hotlist-Merge-Review Merge-Review-60
This bug requires manual review: M60 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), josafat@(ChromeOS), bustamante@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
See https://bugs.chromium.org/p/chromium/issues/detail?id=718140#c9 for a report from a customer whose production is affected by this issue.
Labels: -Merge-Review-60 Merge-Approved-60
Project Member

Comment 29 by sheriffbot@chromium.org, Jun 23 2017

Cc: josa...@chromium.org
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 30 by sheriffbot@chromium.org, Jun 26 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: dgreid@chromium.org
i'm waiting on a +2
added teh +2 to the commit
Project Member

Comment 33 by bugdroid1@chromium.org, Jun 26 2017

Labels: merge-merged-release-R60-9592.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/f23dc447447472a84b263caca726f73ecd426b43

commit f23dc447447472a84b263caca726f73ecd426b43
Author: Mike Frysinger <vapier@chromium.org>
Date: Mon Jun 26 23:44:38 2017

chromeos-init: drop static-nodes.conf install

This init script is being merged into udev.conf, so stop installing it.

BUG= chromium:722143 
TEST=precq passes
CQ-DEPEND=CL:527486

Change-Id: Icca5301acce8f306ea6fdbc0a91947895fbc61c3
(cherry picked from commit 06ace7b71f732590cbf6d10fbd37f8d936ab7a10)
Reviewed-on: https://chromium-review.googlesource.com/540120
Reviewed-by: Adam Goode <agoode@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/f23dc447447472a84b263caca726f73ecd426b43/chromeos-base/chromeos-init/chromeos-init-9999.ebuild

Labels: -Merge-Approved-60 Merge-Merged
Status: Fixed (was: Started)
Cc: willemb@google.com
 Issue 740573  has been merged into this issue.
Status: Verified (was: Fixed)

Sign in to add a comment