lp:~cmiller/desktopcouch/retry-on-couchdb-death-bug530541

Created by Chad Miller and last modified
Get this branch:
bzr branch lp:~cmiller/desktopcouch/retry-on-couchdb-death-bug530541
Only Chad Miller can upload to this branch. If you are Chad Miller please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Chad Miller
Project:
desktopcouch
Status:
Merged

Recent revisions

149. By Chad Miller

I still don't know the cause of this bug, even after valliant help from
mrandrzejak. It appeared to be a timing problem.

This patch adds a retry loop around the code that tries to get the PID and use
the PID to find the port of desktopcouch. It will retry nine more times now,
sleeping one second between each attempt.

148. By Zachery Bir

Add bookmark records to desktopcouch.

147. By Chad Miller

My previous patch screws up the child-parent process condition, so desktopcouch-service tries to kill the process group. That's bad. DBus is in the process group, if something starts us up. Gnome really wants DBus to be alive.

Also, make the child replication service halfway up the possible niceness scale.

146. By Chad Miller

Don't parse all the _changes feed; work out update_seq from the DB info, so we never request the whole feed, which is doom when the whole feed is large.

145. By Chad Miller

Split desktopcouch-service threads into to discrete processes, since they do not depend on each other, and because multithreading breaks with recent changes to libraries. (LP: #524566, #530605)

For places we use DBus function calls, pull the DBus glib mainloop setting close to the place we assign the mainloop to the twisted reactor.

144. By vincenzo di somma <vds@lucid>

Making desktopcouch more robusts when dealing with mergeable lists.
If a key is still in private application annotation for a certain application but it has been removed from it's root_list the mergeable list code traces back with a key error.

143. By Chad Miller

Since replication takes a long time (and we are not clever enough yet to replicate asynchronously), all replication is pushed into a subthread so that we don't block DBus server calls on getPort and such.

However, for some GUI libraries, GUI functions are not allowed to be outside the main execution thread. Violating that causes undefined behavior.

We need access to the keyring data in replication, and 'gnomekeyring' may try to display an alert to the user, using GUI functions. Doing so from inside the replication thread, outside the main thread, can cause SEGV crashes in deep and mysterious parts of Python and libraries it uses.

Now, add a wrapper for those functions that can call GUI functions. First test what environment we're in and if in a subthread, ask the twisted reactor to run the target function in the main execution thread and return the values down to the subthread.

142. By Eric Casteleijn

RecordDict.items() did not return properly wrapped data.

This in turn exposed an IMO more serious bug in CouchDatabaseBase.put_records_batch: that sends Record objects to python-couchdb instead of properly unwrapped dicts (i.e. Record._data). Fixed that bug as well.

141. By Chad Miller

Log files can grow large. Expire old ones when we start up and start fresh.

140. By Elliot Murphy

Fix a missed rename of simplejson->json

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:desktopcouch
This branch contains Public information 
Everyone can see this information.

Subscribers