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

Issue 646585 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

[GCP] Standalone Windows Service breaks in M54 Beta.

Project Member Reported by hernandezma@chromium.org, Sep 13 2016

Issue description

Version: Chrome browser 54.0.2840.16 Beta 64 bit
OS: Windows 10 Pro, Windows 7 Pro, both 64 bit.

What steps will reproduce the problem?
(1) Register GCP using the Windows standalone service.
(2) Make sure you have installed Chrome version detailed above.
(3) Send a print job. 

What is the expected output?
Printjobs should reach the printer, and be printed.

What do you see instead?
All print jobs end up in error.

Additional info:
The GCP standalone service is working fine in current stable version 53.0.2785.101. 

but the behavior it has in beta is similar to crbug.com/638516, which was affecting 

v52. If we don't take a look at it at this time, when 54 hits stable, the issue will 

come back, and we'll receive a lot of reports.

Backup info:

* All print jobs end up in 'Error'. See:
*================================================*
"id": "4113c863-c1e6-6209-1fda-7607baea319f",
"rasterUrl": "https://www.google.com/cloudprint/download?id\u003d4113c863-c1e6-6209-

1fda-
7607baea319f\u0026forcepwg\u003d1",
"contentType": "application/pdf",
"status": "ERROR"
*================================================*

By looking at the GCP debug log, we find 'Spool failed' error:
*================================================*
[5264:3432:0913/102600:VERBOSE1:cloud_print_url_fetcher.cc(164)] CP_PROXY: OnURLFetchComplete, url: https://www.google.com/cloudprint/control?jobid=4113c863-c1e6-6209-1fda-7607baea319f&status=IN_PROGRESS&connector_code=0, response code: 200
[5264:3432:0913/102600:VERBOSE1:printer_job_handler.cc(420)] CP_CONNECTOR: Handling success status update response, printer id: 9e6e4a97-5c67-862e-4225-4e77390e5da3
[5264:3432:0913/102600:VERBOSE1:printer_job_handler.cc(510)] CP_CONNECTOR: Starting printing, printer id: 9e6e4a97-5c67-862e-4225-4e77390e5da3
[5264:2388:0913/102600:VERBOSE1:printer_job_handler.cc(262)] CP_CONNECTOR: Job failed (spool failed)

*================================================*

The Windows print spool logs, we see that 0 bytes of data were delivered to the printer:
*================================================*
Date:          13/09/2016 10:26:00 a.m.
Event ID:      372
Task Category: Printing a document
Level:         Error
Keywords:      Classic Spooler Event,Document Print Job
User:          ****\****
Computer:      ****
Description:
The document Print Document, owned by ****, failed to print on printer Canon MG2400 series. Try to print the document again, or restart the print spooler. 
Data type: NT EMF 1.008. Size of the spool file in bytes: 0. Number of bytes printed: 0. Total number of pages in the document: 0. Number of pages printed: 0. Client computer: \\******. Win32 error code returned by the print processor: 259. No more data is available.
*================================================*

** One more last note: I tried registering the printers with the Chrome connector (browser only) in 54.0.2840.16 Beta, and printers won't show up in the user's printer list even though the service state file is correctly created in the 'User Data' folder. However, if I backup that service state file, and then install the 53 current stable, printers show up. Printers registered with the browser only in v53 remain without any problem if you update to Beta. This last note needs more testing, but the GCP standalone service breaks for sure in 54 Beta.
 
Attaching relevant sanitized log data gathered from internal test account.
chrome_debug.log.txt
17.3 KB View Download
printjob-output.txt
1.3 KB View Download
windows print log.txt
2.0 KB View Download

Comment 2 by roy...@google.com, Sep 13 2016

Cc: bblietz@chromium.org saswat@chromium.org
Labels: -Pri-3 Pri-1
Owner: thestig@chromium.org
We need help to triage this quickly.
Could this be a repeat of b/30751864 due to missing merges ?

Comment 3 by roy...@google.com, Sep 13 2016

Labels: ReleaseBlock-Stable M-54
Adding stable block as this is going to cripple printing service. Repro confirmed by support agents.

This issue seems to be slightly different from b/30751864. 

The previous workaround which is to use the browser as connector doesn't work anymore as stated in the bug description:

" One more last note: I tried registering the printers with the Chrome connector (browser only) in 54.0.2840.16 Beta, and printers won't show up in the user's printer list even though the service state file is correctly created in the 'User Data' folder. However, if I backup that service state file, and then install the 53 current stable, printers show up. Printers registered with the browser only in v53 remain without any problem if you update to Beta. This last note needs more testing, but the GCP standalone service breaks for sure in 54 Beta." 
Cc: gbirtchnell@chromium.org

Comment 6 by yyefet@chromium.org, Sep 14 2016

I was able to repro as well using gcp windows service (not the cups version) on Windows 10 with Chrome 54.0.2840.16 beta-m (64-bit)

Logs and screenshots found below:
https://drive.google.com/drive/folders/0B6fESMmJITTNcF9uVWdVOFhtNjQ?usp=sharing

Comment 7 by yyefet@chromium.org, Sep 14 2016

Cc: yyefet@chromium.org
Cc: royans@chromium.org
Components: Services>CloudPrint
Labels: OS-Windows
I'm OOO this week. Please consider reassigning if this issue needs to be resolved this week.
If this is a repeat of b/30751864, then 54.0.2817.0 was a working build. Someone needs to track down when it broke between that build and 54.0.2840.x.
Well, I happen to have my test laptop. If I tested correctly, this worked in 54.0.2833.0 but broke in 54.0.2834.0. Not seeing any obvious problems in the changelog though.

The symptom is different from the previous bug. This time, the print job stays in the queue for 5+ minutes, whereas in the other bug, it would have errored out already.
Cc: pwestbro@chromium.org paolof@chromium.org

Comment 12 by wfh@chromium.org, Sep 14 2016

Can you expand more on step 1. in c#0 "Register GCP using the Windows standalone service.". what does that means and where can I get this?

Do I need a physical printer (I don't have one) - can I do step 3. to print to e.g. PDF or XPS?

With clarification on the exact repro, I can try and bisect.
The Standalone service isn't required.  This bug should also be reproducible with the built in Cloud Print connector.

Comment 14 by jayhlee@google.com, Sep 14 2016

My understanding is that this issue exists with the Windows Service which is a wrapper for the Chrome connector. The standalone connector is written in Go and does not need Chrome to be installed at all.

Windows service is at: https://support.google.com/a/answer/3179170?hl=en

Standalone Go connector source is at https://github.com/google/cloud-print-connector and has no official binary MSI release yet though we have a RC build floating around.

hernandezma@ can you confirm which you were using?


A worthwhile test here would be to see if the problem persists in the Standalone Connector.  My hunch is that it doesn't, which would lead me to believe the issue is confined to Chrome (and probably outside of the connector itself).
Hey Jay we were using Windows service is at: https://support.google.com/a/answer/3179170?hl=en.


Comment 17 by tin...@google.com, Sep 14 2016

Cc: weili@chromium.org
+ weili@ to help dig into this further while Lei's ooo (just saw wfh@'s comment 12 - thanks Will!)
To address c#12,

1. Install the GCP Windows service you get from https://tools.google.com/dlpage/cloudprintservice
2. Install Chrome browser beta release from https://www.google.com/chrome/browser/beta.html
3. After installing both, run the service and register printers.
4. Print anything to the recently registered printers.

** I've not tried to PDF or XPS virtual printers yet, but assuming that the print job will be sent to the Windows Print Spooler to be processed before creating those file types, I'd say that the result will be exact the same.

Comment 19 by weili@chromium.org, Sep 16 2016

My initial investigation showed https://codereview.chromium.org/2221153003/ is most likely the culprit. Seems the mojo change affects the communication with GCP connector.

Comment 20 by weili@chromium.org, Sep 17 2016

Cc: roc...@chromium.org
Confirmed, it is https://codereview.chromium.org/2221153003/ breaks us.
So the GCP service executable is a separate binary from Chrome? Is it built from Chromium sources or something else? Please tell me how I can get a local test environment running.

It also seems we're missing some very basic test coverage here since the breaking CL landed over a month ago and is no longer safe to revert.

rockot: See comment 18.
- It is a separate executable that you can download/install/run.
- It's compatible with any version of Chrome from the last 2-3 years.
- If you do your own local build, do a non-official Chrome branded build and build the mini-installer target.

To test your own build:
- Stop the GCP service.
- Uninstall any existing copy of Chrome.
- Run your mini-installer.
- Restart the service.

OK, but is if the separate executable is built from Chromium sources, or is
there some other implementation of Chrome IPC floating around somewhere in
a separate repo?
"but want I want to know is* if the separate executable"...
rockot: As for test coverage - we are definitely missing end-to-end test coverage, and this is the second known breakage this quarter. There is a still to be completed post-mortem for the last breakage that royans is putting together. I imagine whatever recommendations there applies here as well.

As for r413232, I'm not even sure what's breaking. Maybe there's some opportunities to add more unit / browser test coverage?
The GCP service binary is ~3 years old, and has remained the same this entire timre. The source is no longer in the Chromium repo. It was deleted in r376593 but it's still in the git history. I didn't write any of the code, but the files that refer to IPC are cloud_print/service/win/service_listener.cc and cloud_print/service/win/setup_listener.cc.
M-54 Stable release is scheduled during the first week of OCT, please have the fix baked/verified in canary and request a merge to M54 ASAP.
Cc: thestig@chromium.org
Owner: roc...@chromium.org
Status: Assigned (was: Untriaged)
OK - looking
Having trouble reproing this on ToT. Will see if I can get it on beta. If so perhaps some of sammc's work after branch fixed it and we can merge stuff.
Can someone please elaborate on the repro steps?

I don't know what it means to "run the service" and I don't know how to register a printer.

I run the cloud print installer, I install Chrome, and I print to a cloud printer. That all works (in M54 and on ToT) so I must be missing some crucial repro step.

I don't see a GCP service listed with other Windows services, so I assume "service" must mean something different in this context.

Thanks!
I'll ping you on chat.
Labels: Merge-Request-54
Status: Fixed (was: Assigned)
I have confirmed locally that this has been fixed by https://crrev.com/3cb38fd23571822bf08c79d90a0ec49ea486492a. It's a trivial change and is safe to merge into 2840 branch ASAP.
Cc: bustamante@chromium.org
Richard, could you please approve the merge.The fix is verified as per #32.
Labels: -Merge-Request-54 Merge-Approved-54
Please merge your change to M54 (branch: 2840) ASAP so that we could take this for next Beta Release.
Labels: -Merge-Approved-54 merge-merged-2840
Sorry, forgot to link the bug to the merge CL. It was merged in https://crrev.com/93796f6b.

Sign in to add a comment