fallback handling
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
NearBy Scope |
Fix Released
|
High
|
Penk Chen | ||
News Scope |
Fix Released
|
High
|
Penk Chen | ||
Photos Scope |
Fix Released
|
High
|
Penk Chen | ||
Today Scope |
Fix Released
|
High
|
Penk Chen | ||
scope-aggregator |
Fix Released
|
High
|
Kyle Nitzsche |
Bug Description
New Description:
Child scopes that provide results that lack an "art" attribute trigger fallback code. This sometimes fails and throws the uncaught exception listed in the Old Description. El Pais scope and Yahoo scope are known to provide such partial results.
Old Description:
When el pais is enabled and you refresh the default Headlines dept, one gets this exception in the scope-registry.log:
[2016-07-07 14:02:05.651] ERROR: com.canonical.
boost::bad_get: failed value get using boost::get
query complete, status: error
: ReplyObject:
boost::bad_get: failed value get using boost::get
Removing el pais causes no such logged exceptions.
Related branches
- Zhang Enwei (community): Approve
- Penk Chen: Pending requested
- Gary.Wang: Pending requested
-
Diff: 109 lines (+21/-14)3 files modifiedCMakeLists.txt (+1/-1)
src/query.cpp (+19/-13)
src/utils.cpp (+1/-0)
Changed in news-scope: | |
status: | New → Confirmed |
importance: | Undecided → High |
description: | updated |
Changed in scope-aggregator: | |
status: | New → Confirmed |
Changed in nearby-scope: | |
status: | New → Confirmed |
assignee: | nobody → Kyle Nitzsche (knitzsche) |
Changed in photos-scope: | |
status: | New → Confirmed |
assignee: | nobody → Kyle Nitzsche (knitzsche) |
Changed in today-scope: | |
status: | New → Confirmed |
assignee: | nobody → Kyle Nitzsche (knitzsche) |
Changed in nearby-scope: | |
importance: | Undecided → High |
Changed in photos-scope: | |
importance: | Undecided → High |
Changed in today-scope: | |
importance: | Undecided → High |
The problem here is in the scope-aggregator code that attempts to use fallback result fields to find art. If the result lacks the expected field, the declared fallback fields are checked in sequence. The code can try to read a result attribute that does not exist, and so an exception is thrown.