Opened 9 years ago

Closed 9 years ago

Last modified 8 years ago

#3400 closed defect (fixed)

Browse:crashes while trying to modify the URL entry

Reported by: manuq Owned by: manuq
Priority: Immediate Milestone:
Component: Browse Version: Git as of bugdate
Severity: Blocker Keywords: 12.1.0 olpc-test-passed
Cc: Distribution/OS: OLPC
Bug Status: Assigned

Description

Browse is unusable at the moment because it crashes when you try to enter something in the main toolbar entry.

Tested in XO-1 and XO-1.5 with olpc build os5. Logs from both machines attached.

Attachments (3)

org.laptop.WebActivity-1.log (2.3 KB) - added by manuq 9 years ago.
org.laptop.WebActivity-2.log (3.0 KB) - added by manuq 9 years ago.
trace_browse.log (14.8 KB) - added by erikos 9 years ago.
trace from crash

Download all attachments as: .zip

Change History (12)

Changed 9 years ago by manuq

Changed 9 years ago by manuq

Changed 9 years ago by erikos

trace from crash

comment:1 Changed 9 years ago by manuq

  • Owner set to manuq
  • Status changed from new to assigned

comment:2 Changed 9 years ago by erikos

  • Bug Status changed from Unconfirmed to Assigned
  • Component changed from untriaged to Browse
  • Keywords 12.1.0 added
  • Priority changed from Unspecified by Maintainer to Immediate
  • Severity changed from Major to Blocker

comment:3 Changed 9 years ago by erikos

The trace suggests that we fail in "/home/olpc/Activities/Browse.activity/webtoolbar.py, line 123" when appending a new entry to the ListStore. Because the library can not be found on os5 our title is None and we try to add this to our list store row=[u'file:///usr/share/library-common/index.html', None]). We can verify this quickly by adding a false title there and the activity does not crash anymore.

We need to check now if it is our job to not pass None values or if the error is in the pygobject overrides.

comment:4 Changed 9 years ago by erikos

I tried to reproduce the issue outside of Browse, like:

from gi.repository import Gtk
list_store = Gtk.ListStore(str, str)
list_store.append(['hallo', None])

But we 'only' get a warning there that 'G_TYPE_IS_VALUE (src_type) failed' but do not crash. Looking at the trace we bubble up until displaying that warning when Browse crashes.

In any case, we should not feed data in our liststore that we did not create it for. There is even a method to check for valid data http://developer.gnome.org/gtk3/3.0/GtkListStore.html#gtk-list-store-iter-is-valid but we should not use that, it is slow.

I think we should handle the title and address as ' ' as default inside Browse and not None. Our checks for example if we should display 'Untitled' should be changed from checking if the string is empty instead of if the variable is None.

comment:5 Changed 9 years ago by manuq

Yes we were filling the list with None values instead of strings. The issue was in the handling of the sqlite database that fills the lists. We query the database to do the drop-down list for autocomplete when the user types something in the toolbar entry. The database model was right, setting "text" field types to the fields for uri and title. However, sqlite uses a dynamic type system and the Places class was initializing does attributes with None.

Solved in commit fe62a1bf0db214c5f302963aa5593502dfeae5f8 .

comment:6 Changed 9 years ago by manuq

  • Keywords olpc-test-pending added
  • Resolution set to fixed
  • Status changed from assigned to closed

comment:7 Changed 9 years ago by erikos

When testing with Browse 134 for triggering this bug you should be aware that this bug was triggered when the olpc-library was not availble OLPC #11702.

comment:8 Changed 9 years ago by greenfeld

  • Keywords olpc-test-passed added; olpc-test-pending removed

I could enter a URL to go to in the main toolbar with 12.1.0 os8 and olpc-library not installed.

comment:9 Changed 8 years ago by dnarvaez

  • Milestone 0.96 deleted

Milestone 0.96 deleted

Note: See TracTickets for help on using tickets.