[Droid Eris Android Development] MongooseHelix:
Here are my thoughts on what I thought were the important lines from the logcat for gps status & dogg catcher both running and causing a reboot:

####DoggCatcher Podcast Player process starting####
I/ActivityManager( 134): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.snoggdoggler.android.applications.doggcatcher.v1_0/com.snoggdoggler.android.activity.podcast.ChannelListActivity bnds=[3,226][77,305] } from pid 196
I/ActivityManager( 134): Displayed com.snoggdoggler.android.applications.doggcatcher.v1_0/com.snoggdoggler.android.activity.podcast.ChannelListActivity: +897ms (total +18m2s54ms)

...

####Updating podcast playlist and finding next item to play####
I/DoggCatcher( 467): AudioPlaylistNoGrouping::Updating playlist: Sorted by date - [167ms]
I/DoggCatcher( 467): AudioPlaylistNoGrouping::Finding next item -> 04/25/11 Marketplace Morning Report - First Edition - [1ms]

####DoggCatcher RSS Cache Database MAXED OUT WARNING####
W/Database( 467): Reached MAX size for compiled-sql statement cache for database /data/data/com.snoggdoggler.android.applications.doggcatcher.v1_0/databases/rss; i.e., NO space for this sql statement in cache: UPDATE item SET guid=?, play_max_position=?, enclosure_url=?, duration=?, title=?, pub_date=?, description=?, link=?, length=?, consumed_state=?, play_position=? WHERE item_id=249569. Please change your sql statements to use '?' for bindargs, instead of using actual values

...

####Updating podcast playlist again but no call to "Finding next item"####
I/DoggCatcher( 467): AudioPlaylistNoGrouping::Updating playlist: Sorted by date - [1673ms]

...

####GPS Status process started####
I/ActivityManager( 134): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.eclipsim.gpsstatus2/.GPSStatus bnds=[3,316][77,395] } from pid 196
I/ActivityManager( 134): Start proc com.eclipsim.gpsstatus2 for activity com.eclipsim.gpsstatus2/.GPSStatus: pid=883 uid=10085 gids={3003, 1015}
I/ActivityManager( 134): Displayed com.eclipsim.gpsstatus2/.GPSStatus: +2s855ms (total +1m21s850ms)

...

####Autoplaying next item - the one that caused cache database to hit max size####
I/DoggCatcher( 467): MediaPlayerController::Autoplay: true forcePlayNext: false finding next item
I/DoggCatcher( 467): MediaPlayerController::Found item, playing: 04/25/11 Marketplace Morning Report - First Edition

####Not enough cache data to continue playing? (generic error from mediaplayer)####
E/MediaPlayer( 467): stop called in state 1
E/MediaPlayer( 467): error (-38, 0)
W/FlurryAgent( 467): onEndSession called without context from corresponding onStartSession

####Set mediaplayer to play from actual file instead of cache?####
D/AocateReplacementMediaPlayer( 467): In setDataSource(context, /mnt/sdcard/DoggCatcher/EpisodeEnclosures/23/marketplace_morning_report_podcast_20110425_64.mp3)

####Updating playlist once more and finding next item - caused rss cache database previously####
I/DoggCatcher( 467): AudioPlaylistNoGrouping::Updating playlist: Sorted by date - [202ms]
I/DoggCatcher( 467): AudioPlaylistNoGrouping::Finding next item -> Buzz Out Loud 1455: Steve Jobs to you: shut up and eat your hummus (Podcast) - [0ms]

####Multiple dalvikVM garbage collections by system_server, GPS Status, Dogg Catcher, and Beautiful Widgets####
####Similar to this one of system_server(pid=134)####
D/dalvikvm( 134): GC_CONCURRENT freed 912K, 39% free 6088K/9863K, external 600K/1112K, paused 7ms+41ms

####Debugging invalid memory reference(segfault)####
I/DEBUG ( 90): Build fingerprint: 'google/passion/passion:2.3.3/GRI40/102588:user/release-keys'
I/DEBUG ( 90): pid: 134, tid: 5014 >>> system_server <<<
I/DEBUG ( 90): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000

####registers values####
I/DEBUG ( 90): r0 00000000 r1 acaa3d08 r2 80808080 r3 00000000
I/DEBUG ( 90): r4 4295f5ac r5 003b2680 r6 45502f8c r7 aca9e5c0
I/DEBUG ( 90): r8 aca11f80 r9 00000000 10 003b2680 fp 49cd8e40
I/DEBUG ( 90): ip aca9e6ac sp 49cd8980 lr aca4ae9f pc afd15088 cpsr 40000010

####program counter(pc)####
I/DEBUG ( 90): #00 pc 00015088 /system/lib/libc.so (strlen)
I/DEBUG ( 90): #01 pc 0004ae9c /system/lib/libdvm.so
I/DEBUG ( 90): #02 pc 0004b090 /system/lib/libdvm.so
I/DEBUG ( 90): #03 pc 0004b7f8 /system/lib/libdvm.so (dvmLockObject)
I/DEBUG ( 90): #04 pc 000126dc /system/lib/libdvm.so
I/DEBUG ( 90): #05 pc 0001c100 /system/lib/libdvm.so (dvmMterpStd)
I/DEBUG ( 90): #06 pc 0001affc /system/lib/libdvm.so (dvmInterpret)
I/DEBUG ( 90): #07 pc 000593e2 /system/lib/libdvm.so (dvmCallMethodV)
I/DEBUG ( 90): #08 pc 00059606 /system/lib/libdvm.so (dvmCallMethod)
I/DEBUG ( 90): #09 pc 0004cea2 /system/lib/libdvm.so (dvmAttachCurrentThread)
I/DEBUG ( 90): #10 pc 00042d32 /system/lib/libdvm.so
I/DEBUG ( 90): #11 pc 00042d90 /system/lib/libdvm.so
I/DEBUG ( 90): #12 pc 00034018 /system/lib/libandroid_runtime.so
I/DEBUG ( 90): #13 pc 00034092 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv)
I/DEBUG ( 90): #14 pc 0001eb16 /system/lib/libutils.so
I/DEBUG ( 90): #15 pc 00011cb4 /system/lib/libc.so (__thread_entry)
I/DEBUG ( 90): #16 pc 00011874 /system/lib/libc.so (pthread_create)

####code around the program counter####
I/DEBUG ( 90): afd15068 e3510000 0a00003c e58d2004 e59d2004
I/DEBUG ( 90): afd15078 e3120003 1afffff6 e0800003 e59f20e0
I/DEBUG ( 90): afd15088 e4901004 e0433000 f5d0f040 e041c3a2
I/DEBUG ( 90): afd15098 e00cc002 e1dcc001 04901004 1a000022
I/DEBUG ( 90): afd150a8 e041c3a2 e00cc002 e1dcc001 04901004

####code around the link register(lr - holds the return address)####
I/DEBUG ( 90): aca4ae7c 41424242 70429801 70591c5a 30051c53
I/DEBUG ( 90): aca4ae8c 70597051 1c289002 fdb4f000 f7c69001
I/DEBUG ( 90): aca4ae9c 9901eb68 98021c02 ff94f7ff 98011c05
I/DEBUG ( 90): aca4aeac eae6f7c6 466b200c 70292100 1c6a5cc3
I/DEBUG ( 90): aca4aebc 9803706b 0a011c53 0c017051 70590e02

####current stack####
I/DEBUG ( 90): 49cd8940 00000000
I/DEBUG ( 90): 49cd8944 00000000
I/DEBUG ( 90): 49cd8948 00000000
I/DEBUG ( 90): 49cd894c 00000000
I/DEBUG ( 90): 49cd8950 0000000d
I/DEBUG ( 90): 49cd8954 45502f8c
I/DEBUG ( 90): 49cd8958 aca9e5c0
I/DEBUG ( 90): 49cd895c aca11f80 /system/lib/libdvm.so
I/DEBUG ( 90): 49cd8960 00000000
I/DEBUG ( 90): 49cd8964 003b2680
I/DEBUG ( 90): 49cd8968 00000028
I/DEBUG ( 90): 49cd896c 4295f5ac
I/DEBUG ( 90): 49cd8970 003b2680
I/DEBUG ( 90): 49cd8974 45502f8c
I/DEBUG ( 90): 49cd8978 df002777
I/DEBUG ( 90): 49cd897c e3a070ad
I/DEBUG ( 90): #00 49cd8980 4295f5ac
I/DEBUG ( 90): 49cd8984 aca4ae99 /system/lib/libdvm.so
I/DEBUG ( 90): #01 49cd8988 00000000
I/DEBUG ( 90): 49cd898c 00000000
I/DEBUG ( 90): 49cd8990 49cd89b8
I/DEBUG ( 90): 49cd8994 00000005
I/DEBUG ( 90): 49cd8998 00000001
I/DEBUG ( 90): 49cd899c 4215132c
I/DEBUG ( 90): 49cd89a0 000d0209
I/DEBUG ( 90): 49cd89a4 79730000
I/DEBUG ( 90): 49cd89a8 6d657473
I/DEBUG ( 90): 49cd89ac 7265735f
I/DEBUG ( 90): 49cd89b0 00726576
I/DEBUG ( 90): 49cd89b4 00000000
I/DEBUG ( 90): 49cd89b8 00000000
I/DEBUG ( 90): 49cd89bc 00000000
I/DEBUG ( 90): 49cd89c0 00000000
I/DEBUG ( 90): 49cd89c4 00000000
I/DEBUG ( 90): 49cd89c8 00000000
I/DEBUG ( 90): 49cd89cc 00000000
I/DEBUG ( 90): 49cd89d0 00000000
I/DEBUG ( 90): 49cd89d4 00000000
I/DEBUG ( 90): 49cd89d8 00000000
I/DEBUG ( 90): 49cd89dc 00000000
I/DEBUG ( 90): 49cd89e0 00000000
I/DEBUG ( 90): 49cd89e4 00000000
I/DEBUG ( 90): 49cd89e8 00000000
I/DEBUG ( 90): 49cd89ec 00000000
I/DEBUG ( 90): 49cd89f0 00000000
I/DEBUG ( 90): 49cd89f4 00000000
I/DEBUG ( 90): 49cd89f8 00000000
I/DEBUG ( 90): 49cd89fc 00000000
I/DEBUG ( 90): 49cd8a00 00000000
I/DEBUG ( 90): 49cd8a04 00000000
I/DEBUG ( 90): 49cd8a08 00000000
I/DEBUG ( 90): 49cd8a0c 00000000
I/DEBUG ( 90): 49cd8a10 00000000
I/DEBUG ( 90): 49cd8a14 00000000
I/DEBUG ( 90): 49cd8a18 00000000
I/DEBUG ( 90): 49cd8a1c 00000000
I/DEBUG ( 90): 49cd8a20 00000000
I/DEBUG ( 90): 49cd8a24 00000000
I/DEBUG ( 90): 49cd8a28 00000000
I/DEBUG ( 90): 49cd8a2c 0000fa00
I/DEBUG ( 90): 49cd8a30 0000fa00
I/DEBUG ( 90): 49cd8a34 afd10028 /system/lib/libc.so
I/DEBUG ( 90): 49cd8a38 000001f4
I/DEBUG ( 90): 49cd8a3c 00000000
I/DEBUG ( 90): 49cd8a40 000001f4
I/DEBUG ( 90): 49cd8a44 000001f4
I/DEBUG ( 90): 49cd8a48 00000000
I/DEBUG ( 90): 49cd8a4c 000001f4
I/DEBUG ( 90): 49cd8a50 74737973
I/DEBUG ( 90): 49cd8a54 735f6d65
I/DEBUG ( 90): 49cd8a58 65767265
I/DEBUG ( 90): 49cd8a5c 00000072
I/DEBUG ( 90): 49cd8a60 00000000
I/DEBUG ( 90): 49cd8a64 00000000
I/DEBUG ( 90): 49cd8a68 00000000
I/DEBUG ( 90): 49cd8a6c 00000000
I/DEBUG ( 90): 49cd8a70 aca9e500
I/DEBUG ( 90): 49cd8a74 a1aedd26
I/DEBUG ( 90): 49cd8a78 003b2680
I/DEBUG ( 90): 49cd8a7c 00298c08
I/DEBUG ( 90): 49cd8a80 003b2680
I/DEBUG ( 90): 49cd8a84 aca9e5c0
I/DEBUG ( 90): 49cd8a88 00000001
I/DEBUG ( 90): 49cd8a8c aca4b095 /system/lib/libdvm.so

####Dogg Catcher is still fetching feeds and doing getting garbage collected here####
...

####GC - Garbage Collection Daemon(thread 3) tries 10 times to suspend system_server process(thread 57)####
W/dalvikvm( 134): threadid=3: spin on suspend #1 threadid=57 (pcf=0)

####Suspend attempts 3-10 are identical to #2 shown below####
W/dalvikvm( 134): threadid=3: spin on suspend #2 threadid=57 (pcf=0)
I/dalvikvm( 134): "GC" daemon prio=5 tid=3 RUNNABLE
I/dalvikvm( 134): | group="system" sCount=0 dsCount=0 obj=0x4050d2a0 self=0x834d8
I/dalvikvm( 134): | sysTid=136 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=986144
I/dalvikvm( 134): | schedstat=( 4496368447 10212127657 2626 )
I/dalvikvm( 134): at dalvik.system.NativeStart.run(Native Method)
I/dalvikvm( 134):
I/dalvikvm( 134): "(null)" prio=0 tid=57 RUNNABLE
I/dalvikvm( 134): | group="(null; initializing?)" sCount=1 dsCount=0 obj=0x40964178 self=0x3b2680
I/dalvikvm( 134): | sysTid=5014 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=487288
I/dalvikvm( 134): | schedstat=( 1586915 9857177 6 )
I/dalvikvm( 134): at java.lang.Thread.<init>(Thread.java:~387)
I/dalvikvm( 134): at dalvik.system.NativeStart.run(Native Method)

...

####Can't suspend system_server - it's the parent dalvikvm/gc daemon####
E/dalvikvm( 134): Fatal spin-on-suspend, dumping threads
I/dalvikvm( 134): DALVIK THREADS:
I/dalvikvm( 134): (mutexes: tll=2 tsl=1 tscl=0 ghl=1 hwl=0 hwll=0)
####LIST OF ALL CURRENT DALVIK THREADS CUT FROM LOG####

...

####Dump debug info to file in /data/tombstones/####
E/dalvikvm( 134): threadid=3: stuck on threadid=57, giving up
D/dalvikvm( 134): threadid=3: sending two SIGSTKFLTs to threadid=57 (tid=5014) to cause debuggerd dump
D/dalvikvm( 134): Sent, pausing to let debuggerd run
D/dalvikvm( 134): Continuing
E/dalvikvm( 134): VM aborting

####Dogg Catcher & GPS Status closed channels (JNI = Java Native Interface)####
E/InputQueue-JNI( 467): channel '408a7470 com.snoggdoggler.android.applications.doggcatcher.v1_0/com.snoggdoggler.android.activity.podcast.ChannelListActivity (client)' ~ Publisher closed input channel or an error occurred. events=0x8
E/InputQueue-JNI( 883): channel '408777e8 com.eclipsim.gpsstatus2/com.eclipsim.gpsstatus2.GPSStatus (client)' ~ Publisher closed input channel or an error occurred. events=0x8

I/DEBUG ( 90): debuggerd committing suicide to free the zombie!
D/Zygote ( 92): Process 134 terminated by signal (11)
I/Zygote ( 92): Exit zygote because system server (134) has terminated
I/DEBUG ( 6279): debuggerd: Apr 25 2011 01:14:21
####REBOOT####

Since it's the system_server that has the segfault, could it be that one of the garbage collections is trying to free something that isn't a valid location on internal memory? If that is the case, need to figure out how that happened. It certainly isn't clear to me what is causing the crash. The top of the program counter shows the string length function(strlen) and then a lot of what I assume are calls to more dalvikvm garbage collections. One thing that could help narrow this down would be to get some kmsg logs using "cat /proc/kmsg > /data/gps_kmesg.txt".

There also appears to be an issue with Dogg Catcher but unsure, if or how it plays into the crashes. It looks like Dogg Catcher fills up it's RSS cache database the first time it tries to cache the next podcast in the playlist(after "Finding next item") and produces a warning. The second time it proceeds to handling of the system_server segfault after a good bit of garbage collection so it doesn't cause an instant crash if it is involved. This stackoverflow post got me wondering if Dogg Catcher isn't effectively cleaning out it's cache and then somehow oversteps memory boundries but not sure how this would be related to these crashes due to system_server and from what people say, occuring only with gps usage. It would be interesting to know if these cache database warnings occur when Dogg Catcher is running without a GPS app running. Also, have some people had a reboot with only GPS usage of some kind and no media player running?

One other thing...the following part of a larger post got me curious:

Maps/Navigation, Dogg Catcher, and GPS Status all appear to have Java Native Interface(JNI) code included so possibly something going on there.