What caused a "panic"?


#1

My app appears to be synchronizing on and on until finally a “panic” occurs and the sync completes. Do you have any idea what might be happening?

I see this in the couchbase sync gateway logs:

2014/05/02 19:24:56 http: panic serving 166.216.226.71:46063: runtime error: assignment to entry in nil map
goroutine 123 [running]:
net/http.func·009()
/usr/local/go/1.2/src/pkg/net/http/server.go:1093 +0xa1
runtime.panic(0x8400980, 0x8b48fb9)
/usr/local/go/1.2/src/pkg/runtime/panic.c:248 +0xef
github.com/couchbaselabs/sync_gateway/db.(*Database).getRevFromDoc(0x19058520, 0x18ed11b0, 0x1919bc79, 0x22, 0x1, …)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/db/crud.go:179 +0x2d9
github.com/couchbaselabs/sync_gateway/db.(*Database).GetRev(0x19058520, 0x1919bc6e, 0x6, 0x1919bc79, 0x22, …)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/db/crud.go:63 +0x8e
github.com/couchbaselabs/sync_gateway/rest.(*handler).handleGetDoc(0x18f7cd00, 0x19058520, 0x0)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/rest/doc_api.go:44 +0x240
github.com/couchbaselabs/sync_gateway/rest.(*handler).invoke(0x18f7cd00, 0x850e390, 0xf7782b90, 0x18fefee0)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/rest/handler.go:130 +0x186
github.com/couchbaselabs/sync_gateway/rest.func·005(0xf7782b90, 0x18fefee0, 0x18fefe70)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/rest/handler.go:78 +0x6e
net/http.HandlerFunc.ServeHTTP(0x18eff250, 0xf7782b90, 0x18fefee0, 0x18fefe70)
/usr/local/go/1.2/src/pkg/net/http/server.go:1220 +0x3e
github.com/gorilla/mux.(*Router).ServeHTTP(0x18e86d80, 0xf7782b90, 0x18fefee0, 0x18fefe70)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/vendor/src/github.com/gorilla/mux/mux.go:86 +0x197
github.com/couchbaselabs/sync_gateway/rest.func·007(0xf7782b90, 0x18fefee0, 0x18fefe70)
/home/jenkins/jenkins/workspace/build_sync_gateway_stable/sync_gateway/src/github.com/couchbaselabs/sync_gateway/rest/routing.go:153 +0xb0
net/http.HandlerFunc.ServeHTTP(0x18f055b0, 0xf7782b90, 0x18fefee0, 0x18fefe70)
/usr/local/go/1.2/src/pkg/net/http/server.go:1220 +0x3e
net/http.serverHandler.ServeHTTP(0x18f56ea0, 0xf7782b90, 0x18fefee0, 0x18fefe70)
/usr/local/go/1.2/src/pkg/net/http/server.go:1597 +0x123
net/http.(*conn).serve(0x19111c80)
/usr/local/go/1.2/src/pkg/net/http/server.go:1167 +0x671
created by net/http.(*Server).Serve
/usr/local/go/1.2/src/pkg/net/http/server.go:1644 +0x266

Afterwards I see this repeating in the couchbase sync gateway logs:

19:25:27.508070 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x192ff690}) …
19:25:27.508156 Changes: MultiChangesFeed: channels expand to :1218 …
19:25:27.508384 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:26:19.149459 HTTP: #846: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:26:19.149564 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x19176ed0}) …
19:26:19.149674 Changes: MultiChangesFeed: channels expand to :1218 …
19:26:19.149890 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:27:12.516400 HTTP: #847: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:27:12.516507 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x18f65a20}) …
19:27:12.516609 Changes: MultiChangesFeed: channels expand to :1218 …
19:27:12.519729 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:28:04.182982 HTTP: #848: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:28:04.183086 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x19169570}) …
19:28:04.183159 Changes: MultiChangesFeed: channels expand to :1218 …
19:28:04.183420 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:28:56.391176 HTTP: #849: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:28:56.391283 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x192911b0}) …
19:28:56.391394 Changes: MultiChangesFeed: channels expand to :1218 …
19:28:56.391631 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:29:50.763565 HTTP: #850: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:29:50.763672 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x19291510}) …
19:29:50.763787 Changes: MultiChangesFeed: channels expand to :1218 …
19:29:50.764052 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:30:46.125262 HTTP: #851: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:30:46.125378 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x19291090}) …
19:30:46.125502 Changes: MultiChangesFeed: channels expand to :1218 …
19:30:46.125761 Changes+: Waiting for “bsg_sync”'s count to pass 5
19:31:45.027484 HTTP: #852: GET /bsg_sync/_changes?feed=longpoll&limit=50&heartbeat=300000&style=all_docs&since=
%3A2359
19:31:45.027594 Changes: MultiChangesFeed({}, {Since::2359 Limit:50 Conflicts:true IncludeDocs:false Wait:true Terminator:0x192918d0}) …
19:31:45.027709 Changes: MultiChangesFeed: channels expand to *:1218 …
19:31:45.027957 Changes+: Waiting for “bsg_sync”'s count to pass 5

I see this repeatedly in the log output of my Android application:
05-02 12:25:24.501: E/ChangeTracker(3807): com.couchbase.lite.replicator.ChangeTracker@42922b68: Exception in change tracker
05-02 12:25:24.501: E/ChangeTracker(3807): org.codehaus.jackson.JsonParseException: Unexpected character (’<’ (code 60)): expected a valid value (number, String, array, object, ‘true’, ‘false’ or ‘null’)
05-02 12:25:24.501: E/ChangeTracker(3807): at [Source: org.apache.http.conn.EofSensorInputStream@429edf58; line: 1, column: 2]
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1432)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:385)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:306)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.impl.Utf8StreamParser._handleUnexpectedValue(Utf8StreamParser.java:2084)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.impl.Utf8StreamParser._nextTokenNotInObject(Utf8StreamParser.java:600)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:486)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2761)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2709)
05-02 12:25:24.501: E/ChangeTracker(3807): at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1900)
05-02 12:25:24.501: E/ChangeTracker(3807): at com.couchbase.lite.replicator.ChangeTracker.run(ChangeTracker.java:319)
05-02 12:25:24.501: E/ChangeTracker(3807): at java.lang.Thread.run(Thread.java:841)

Do you think bad data got in my database?