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

Issue 751196 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Last visit > 30 days ago
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Recovery regex wrong for REEF boards

Project Member Reported by jayhlee@google.com, Aug 1 2017

Issue description

recovery.json does not currently have images for REEF boards (electro, pyro, snappy, basking). Please update recovery.json to include images for these launched boards.
 

Comment 1 by jayhlee@google.com, Aug 1 2017

Cc: vwang@chromium.org
+ vwang

Comment 2 by vwang@chromium.org, Aug 1 2017

Cc: gidon@google.com
+ gidon

Thank you, Jay, for open this bug.
Cc: josa...@chromium.org
 josafat@ as for https://bugs.chromium.org/p/chromium/issues/detail?id=750328
can we consider also this fixed ?
Cc: marcore@chromium.org

Comment 5 by jayhlee@google.com, Aug 3 2017

Hmm... Now it looks like the regex in recovery.json for Acer Chromebook Spin 11 (R751T) is to broad:

...
    "hwidmatch": "^REEF \\w{3}-C\\w{2}(-\\w{3})*",
    "manufacturer": "Asus",
    "md5": "f9a1fa62667274ef0b20633c3bac65a5",
    "model": "ASUS Chromebook C213NA",
...
    "hwidmatch": "^REEF .*",
    "manufacturer": "Acer",
    "md5": "f9a1fa62667274ef0b20633c3bac65a5",
    "model": "Acer Chromebook Spin 11 (R751T)",
...

I don't think we'll ever match the Asus board because the Acer matches first :-/

Jay

Comment 6 by jayhlee@google.com, Aug 3 2017

Summary: Recovery regex wrong for REEF boards (was: Recovery missing for REEF boards)

Comment 7 by vwang@chromium.org, Aug 3 2017

FYI: According to https://cros-goldeneye.corp.google.com/chromeos/console/viewDevice?id=180

Acer Electro's Hardware ID Device Pattern should be "^REEF \w{3}-B\w{2}(-\w{3})*".
Cc: leecy@chromium.org
Owner: moisesos...@chromium.org
Moises, any ideas how we would get '^REEF .*' in there?

Looking at the history for the electro device I don't see that being set.
Because the electro device has "Recovery Variants", the HWID device pattern is ignored and only adds the variants to recovery.json. It has only one recovery variant (Acer Chromebook Spin 11 (R751T)) and it's linking to the reef board (https://cros-goldeneye.corp.google.com/chromeos/console/viewBoard?name=reef) which has the "^REEF .*" pattern.

To fix this, I think you simply want to remove the recovery variant. Recovery variants are used for when a device has multiple marketing names, or more like when a marketing name does not "deserve" a "whole" device entity in GoldenEye.
Note this behavior is legacy from the old script we've replaced, if you think something is not intuitive let us know to, at least, add tooltips/warnings explaining this to users.
Owner: bhthompson@chromium.org
Status: Assigned (was: Unconfirmed)
I see, though we still may have a problem, simply removing the recovery variant is not working, I get an error 500 when I try to save it.

java.lang.IllegalStateException: Transaction not active
	at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:104)
	at com.google.chrome.crosbuilds.common.data.framework.AutoTransaction.rollback(AutoTransaction.java:39)
	at com.google.chrome.crosbuilds.console.server.ui.appactions.DeviceSaveAction.execute(DeviceSaveAction.java:245)
	at com.google.chrome.crosbuilds.common.data.framework.DbCleanupInterceptor.execute(DbCleanupInterceptor.java:19)
	at com.google.chrome.crosbuilds.common.data.framework.DbCleanupInterceptor.execute(DbCleanupInterceptor.java:19)
	at com.google.chrome.crosbuilds.common.data.framework.DbCleanupInterceptor.execute(DbCleanupInterceptor.java:19)
	at com.google.chrome.crosbuilds.common.framework.tracing.TracingReportInterceptor.execute(TracingReportInterceptor.java:67)
	at com.google.apps.framework.request.impl.InterceptorInvocation$Http.beforeProceed(InterceptorInvocation.java:125)
	at com.google.apps.framework.request.impl.InterceptorInvocation.proceed(InterceptorInvocation.java:157)
	at com.google.apps.framework.request.ActionServlet$Dispatcher.dispatch(ActionServlet.java:82)
	at com.google.apps.framework.request.ActionServlet.service(ActionServlet.java:47)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
	at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
	at com.google.apps.framework.request.impl.LegacyHttpDispatcher.proceed(LegacyHttpDispatcher.java:60)
	at com.google.apps.framework.request.impl.LegacyHttpDispatcher.proceed(LegacyHttpDispatcher.java:29)
	at com.google.apps.framework.request.impl.AbstractDispatcher.doExecuteChain(AbstractDispatcher.java:365)
	at com.google.apps.framework.request.impl.AbstractDispatcher.execute(AbstractDispatcher.java:262)
	at com.google.apps.framework.request.impl.AbstractDispatcher.executeAsync(AbstractDispatcher.java:207)
	at com.google.apps.framework.request.FrameworkFilter.doFilter(FrameworkFilter.java:40)
	at com.google.servlet.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:30)
	at com.google.apps.framework.request.HeadResponseFrameworkFilter.doFilter(HeadResponseFrameworkFilter.java:29)
	at com.google.servlet.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:30)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
	at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:189)
	at com.google.gse.FilteredServlet.service(FilteredServlet.java:158)
	at com.google.gse.internal.HttpConnectionImpl.runServletFromWithinSpan(HttpConnectionImpl.java:928)
	at com.google.gse.internal.HttpConnectionImpl.access$000(HttpConnectionImpl.java:73)
	at com.google.gse.internal.HttpConnectionImpl$1.runServletFromWithinSpan(HttpConnectionImpl.java:820)
	at com.google.gse.GSETraceHelper$TraceableServletRunnable$2.run(GSETraceHelper.java:468)
	at com.google.tracing.LocalTraceSpanRunnable.runInContext(LocalTraceSpanRunnable.java:55)
	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:460)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:321)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:311)
	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:457)
	at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:643)
	at com.google.gse.GSETraceHelper$TraceableServletRunnable.continueGfeTrace(GSETraceHelper.java:417)
	at com.google.gse.GSETraceHelper$TraceableServletRunnable.runWithTracingEnabled(GSETraceHelper.java:372)
	at com.google.gse.GSETraceHelper$TraceableServletRunnable.run(GSETraceHelper.java:338)
	at com.google.gse.internal.HttpConnectionImpl.runServlet(HttpConnectionImpl.java:822)
	at com.google.gse.internal.HttpConnectionImpl.run(HttpConnectionImpl.java:776)
	at com.google.gse.internal.DispatchQueueImpl$WorkerThread.run(DispatchQueueImpl.java:387)
Status: Fixed (was: Assigned)
This should be worked around by setting the reef regex at https://cros-goldeneye.corp.google.com/chromeos/console/viewBoard?name=reef# to "^REEF \w{3}-B\w{2}(-\w{3})*". 

This should be effectively fixed for now, Moises will be following up on the error 500 aspect separately. 

Comment 14 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment