Scopes freeze after few times slide on Bq 4.5
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | click-reviewers-tools (Ubuntu) |
High
|
Marcus Tomlinson | ||
| | unity-scopes-api (Ubuntu) |
High
|
Michi Henning | ||
| | unity-scopes-shell (Ubuntu) |
Undecided
|
Unassigned | ||
| | unity8 (Ubuntu) |
Undecided
|
Unassigned | ||
Bug Description
BQ 4.5 Ubuntu-touch OTA7 (Ubuntu 15.04 r26)
After a few slides on the scopes, it freezes the scopes in the middle of 2 scopes
unity left bar can still be moved, but when launching apps from the left bar
nothing happens to the freezed scopes screen, only rebooting the phone fixes it.
when i remove some scopes from favorites it freezes on other scopes
Let me know wich logs i can attach to this bug to make debug easier.
Related branches
- Jamie Strandboge: Approve on 2015-12-01
-
Diff: 88 lines (+36/-2)3 files modifiedcheck-names.list (+1/-0)
clickreviews/cr_scope.py (+21/-1)
clickreviews/tests/test_cr_scope.py (+14/-1)
| lotuspsychje (lotuspsychje) wrote : | #1 |
| Albert Astals Cid (aacid) wrote : | #2 |
| lotuspsychje (lotuspsychje) wrote : | #3 |
@ #2 Albert:
*Yes i can reproduce the freeze every time i swipe scopes, the first few slide ok, the further i come the more chance of freeze
*Im just swiping scopes, no other apps running while i reproduce
*I do have app crashes and errors enabled
*scopes list favorites from left to right: apps scope|de standaard scope|softpedia linux scope|uapp explorer scope|500px scope|
engadget scope|soundcloud scope|mixcloud scope
when i disable the freezing scopes, it freezes on other scopes
| Albert Astals Cid (aacid) wrote : | #4 |
Could reproduce it here with the scopes lotuspsychje mentions.
The full backtrace of the threads can be found at http://
Seems like something is getting stuck in the scopes side, adding a few more projects
| Albert Astals Cid (aacid) wrote : | #5 |
Seems mixcloud is the one causing the problem, as a temporary workaround you can remove it, we'll work on figuring out why it happens.
| Paweł Stołowski (stolowski) wrote : | #6 |
Ok, this scope locks the dash up even when not favorited and just opened via Manage Dash. Moreover, it even locks up a commandline scopes-client (for libunity-scopes-cli package):
$ scopes-client com.ubuntu.
It looks like we are not as resistant to misbehaving scopes as we should be. The scopes-client re-implements finished() method of SearchListener, but it's not triggered with this scope (this method should eventually receive an error I think).
| Paweł Stołowski (stolowski) wrote : | #7 |
Ok, mixcloud scope seems to be released in completely broken state, its ini file has this:
ScopeRunner=
So it's not even really running in the system. Scopesregistry logfile has this error (the extra debug output is from the qtc_device_
Debug-helper> Setting up environment
Debug-helper> TmpDir: /home/phablet/
Debug-helper> AppId: com.ubuntu.
Debug-helper> Environment: confined
Debug-helper> Environment initialized, starting the application
Debug-helper> Executing /usr/lib/
[2015-11-27 15:32:31.902474] ERROR: com.ubuntu.
unity:
scoperunner: unity::
unity:
Now, it seems that somehow the errors don't make it to the client and it's stuck forever waiting for IPC.
| Changed in unity8 (Ubuntu): | |
| status: | New → Invalid |
| Michi Henning (michihenning) wrote : | #8 |
OK, so the root cause is the broken scope config. But we shouldn't misbehave in this way just because the scope has a broken config.
I'll look at this on Monday.
| Changed in unity-scopes-api (Ubuntu): | |
| assignee: | nobody → Michi Henning (michihenning) |
| importance: | Undecided → High |
| Michi Henning (michihenning) wrote : | #9 |
Hmmm... I just tried to reproduce, but cannot. I modified the demo scope-A .ini file to point at a script:
ScopeRunner = /tmp/tryit
I've tried with the script immediately exiting with status 1, with status 0, and with the script hanging (by sleeping). Trace in the script verifies that the registry calls it correctly.
If the script exits, the client, receives a MiddlewareException from search() saying that the scope failed to start correctly after four seconds.
If the script hangs, the client gets the same exception from search, but after 8 seconds (because we do the locate() behind the scenes).
All this is as expected. Pawel, what did you do to make the demo client hang?
At any rate, I don't think there is any obvious problem with scopes-api. The behavior is as expected. Maybe the shell or the client you used do not handle the exception from search() correctly? Note that it is not possible to trigger the finished() callback if the scope never gets off the ground in the first place...
| Paweł Stołowski (stolowski) wrote : | #10 |
Looking at ScopeImpl.cpp I'm not sure how search can throw (btw, Scope.h docstrings don't mention throwing an exception). As far as I understand the code, search catches all exceptions and just calls ro->finished(
I made scopes-client tool hang by just executing search against the misbehaving scope with it:
$ scopes-client com.ubuntu.
| Paweł Stołowski (stolowski) wrote : | #11 |
Ok, the real problem is this scope has debug mode enabled in the ini file:
ScopeRunner=
DebugMode=true
which pretty much disables all the timeouts we have in the middleware (so that scopes can be debugged with SDK & gdb, client doesn't throw after scope execution is paused). Scopes should never be released in such state to the store (store should prevent this IMO). It would also be nice if we could deal with it somehow.
Seems click-reviewers
| Changed in unity-scopes-shell (Ubuntu): | |
| status: | New → Invalid |
| Changed in unity-scopes-api (Ubuntu): | |
| status: | New → Invalid |
| Changed in click-reviewers-tools (Ubuntu): | |
| status: | New → Confirmed |
| assignee: | nobody → Marcus Tomlinson (marcustomlinson) |
| Changed in click-reviewers-tools (Ubuntu): | |
| status: | Confirmed → In Progress |
| importance: | Undecided → High |
| Jamie Strandboge (jdstrand) wrote : | #13 |
FYI, I'm fine with the extra check but debugmode should've already triggered the 'unknown' checks. Indeed it does:
$ click-review /var/www/
Errors
------
- lint:framework
'ubuntu-
http://
- security:
(REJECT) reserved policy group 'debug': not for production use
- security:
found inappropriate policy groups: debug
Warnings
--------
- scope:ini_
Unknown field in 'mixcloudscope/
/var/www/
So, the store did its job-- someone manually accepted this into the store.
| Changed in click-reviewers-tools (Ubuntu): | |
| status: | In Progress → Fix Committed |
| Paweł Stołowski (stolowski) wrote : | #14 |
I've asked to unpublish this scope from the store for now, fgallina took care of that.
| Launchpad Janitor (janitor) wrote : | #15 |
This bug was fixed in the package click-reviewers
---------------
click-reviewers
[ Jamie Strandboge ]
* clickreviews/
- add checks for listen-stream, socket, socket-user and socket-group
- remove vendor checks with bus-name (LP: #1510522)
* clickreviews/
- make sure that the generated profile name is under the current 253
character maximum. This might have to be adjusted after the AppArmor
stacking work is completed (LP: #1499544)
- adjust for xenial snappy defaulting to using 'network-client' instead
of 'networking'
- use 'NEEDS REVIEW' instead of 'MANUAL REVIEW'
* clickreviews/
- check if package ships .click directory
- add a few more vcs files
- remove vendor-specific checks. 'vendor' is still allowed for
compatibility with older snappy versions, but no formatting checks are
performed (LP: #1510522)
- 'Maintainer' checks in the click manifest should only be done with click
packages (LP: #1510522)
- don't prompt manual review when find .excludes file
- add kernel and os as valid snap types
- remove package filename checks. They were meaningless and hard to
maintain
- sort unknown snappy yaml keys
- use 'NEEDS REVIEW' instead of 'MANUAL REVIEW'
* clickreviews/
- add valid yaml keys for kernel snaps
- add a couple more mime types for detecting binaries (useful for arm
kernels)
* update data/apparmor-
* Makefile: add json syntax check
* several changes for squashfs snaps that won't have a click manifest, etc.
Importantly, this means that only package.yaml is looked at and a lot of
click specific tests can be skipped
- cr_common.py:
+ rename a few variable to not be click specific
+ add self.pkgfmt
+ adjust __init__() to conditionally use package.yaml on squashfs,
otherwise click manifest
+ make click data structure initialization conditional on if click
or not (eg, don't run hooks code on squashfs images)
- adjust clickreviews/cr_* to conditionally run certain click-only tests
on click packages
- adjust architecture checks to use self.pkg_arch and rename
control_
- cr_security.py:
+ revamp to use package.yaml on non-click instead of now nonexistent
security manifest
+ update push-helper template test to not make hooks specific
+ network-client should not be allowed with push helpers either
+ conditionally look for INSTALL_DIR on 16.04 systems in security-policy
+ adjust security-override checks on 16.04 to follow 16.04 yaml
+ make click manifest checks conditional on if click
- cr_tests.py: mock _pkgfmt_type(), _pkgfmt_version() and _is_squashfs()
[ Michael Nelson ]
* add support for non-mocked tests
[ Michael Vogt ]
* add support for squashfs snaps (currently will trigger manual review)
[ Daniel Holbach ]
* Pass absolute path of click or snap file - that way it's safe even if we
...
| Changed in click-reviewers-tools (Ubuntu): | |
| status: | Fix Committed → Fix Released |


Some questions: >Diagnostics?
* Can you reproduce this problem or did it just happen once?
* Were you just swiping left/right or doing something else that you think could have caused the crash?
* Do you have "App crashes and errors" enabled in System Settings->Security & Privacy-
* Can you give us a list and order of the scopes you have favorited?