Undefined symbol when running scope in emulator

Bug #1537328 reported by Psirus
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Client Developer Experience
Incomplete
Medium
Zoltan Balogh
Ubuntu SDK IDE
New
Undecided
Benjamin Zeller
unity-scopes-api (Ubuntu)
Invalid
Undecided
Marcus Tomlinson

Bug Description

I'm trying to run the template scope in the emulator of the Ubuntu SDK in 15.04. The scope builds just fine, but when I try to run it in the emulator, it gives me the following error:

scoperunner: unity::ResourceException: Cannot load scope schnasni.username_schnasni; tried in the following locations:
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/libschnasni.username_schnasni.so
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/schnasni.username_schnasni.so
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/scope.so
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/libschnasni.username_schnasni.so
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/schnasni.username_schnasni.so
/opt/click.ubuntu.com/schnasni.username/0.1/schnasni/scope.so
Exception history:
    Exception #1:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/libschnasni.username_schnasni.so: cannot open shared object file: No such file or directory
    Exception #2:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/schnasni.username_schnasni.so: cannot open shared object file: No such file or directory
    Exception #3:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/i386-linux-gnu/scope.so: cannot open shared object file: No such file or directory
    Exception #4:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/libschnasni.username_schnasni.so: undefined symbol: _ZN5unity6scopes9ScopeBase22activate_result_actionERKNS0_6ResultERKNS0_14ActionMetadataERKSs
    Exception #5:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/schnasni.username_schnasni.so: cannot open shared object file: No such file or directory
    Exception #6:
        unity::ResourceException: /opt/click.ubuntu.com/schnasni.username/0.1/schnasni/scope.so: cannot open shared object file: No such file or directory

It searches for the file in 6 directories, and does not find it in 5 of these, which is expected I think. But what does

undefined symbol: _ZN5unity6scopes9ScopeBase22activate_result_actionERKNS0_6ResultERKNS0_14ActionMetadataERKS

mean and how can I resolve it?

Changed in canonical-developer-experience:
assignee: nobody → Alejandro J. Cura (alecu)
Changed in unity-scopes-api (Ubuntu):
assignee: nobody → Marcus Tomlinson (marcustomlinson)
Changed in canonical-developer-experience:
importance: Undecided → Medium
Revision history for this message
Michi Henning (michihenning) wrote :

This looks like the scopes API lib used by the emulator is out of date?

Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

Michi's right, the undefined symbol is really the culprit here, so yeah, the scopes API lib is out of date on the emulator. To resolve this, I suspect it'd be just a matter of navigating to the system settings on the emulator and performing all updates.

The reason you see all that other noise about not finding other libs is because once the scoperunner runs into an issue with one lib (libschnasni.username_schnasni.so in this case), it then attempts to find alternatives that it may have more luck with.

Revision history for this message
Michi Henning (michihenning) wrote :

> The reason you see all that other noise about not finding other libs is because once the scoperunner runs into an issue with one lib (libschnasni.username_schnasni.so in this case), it then attempts to find alternatives that it may have more luck with.

I did this after Michal applied a lot of pressure to allow short names for scope libraries. Originally, you had to use the full-qualified scope ID with a .so suffix. In effect, this has created aliasing for the possible .so names, meaning that the scope loader has to look for a whole bunch of possible names.

Next time, I'll be resisting that kind of suggestion a lot more. In the long run, I think it creates more trouble than it's worth.

Revision history for this message
Michi Henning (michihenning) wrote :

This isn't a scopes-api problem. Anyone know what the correct project for the emulator is, so I can re-assign?

Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

AFAIK the emulator lives in the phablet-tools project. Adding phablet-tools to affected packages.

no longer affects: golang-phablet-tools-ubuntu-emulator (Ubuntu)
Changed in unity-scopes-api (Ubuntu):
status: New → Invalid
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

I assume this is ok with the latest emulator but lets verify

no longer affects: phablet-tools (Ubuntu)
Changed in canonical-developer-experience:
assignee: Alejandro J. Cura (alecu) → Zoltan Balogh (bzoltan)
status: New → Incomplete
affects: ubuntu-sdk-ide (Ubuntu) → ubuntu-sdk-ide
Changed in ubuntu-sdk-ide:
assignee: nobody → Benjamin Zeller (zeller-benjamin)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.