pstack
pstack 27339
#0 0x00000037c600cd2b in pthread_once () from /lib64/libpthread.so.0
#1 0x00000037c5cfe954 in backtrace () from /lib64/libc.so.6
#2 0x00000037c5c7054b in __libc_message () from /lib64/libc.so.6
#3 0x00000037c5c75e66 in malloc_printerr () from /lib64/libc.so.6
#4 0x00000037c5c79904 in _int_malloc () from /lib64/libc.so.6
#5 0x00000037c5c7a6b1 in malloc () from /lib64/libc.so.6
#6 0x00000037c580cc5d in _dl_map_object_deps () from /lib64/ld-linux-x86-64.so.2
#7 0x00000037c5812b62 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#8 0x00000037c580e266 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#9 0x00000037c58125aa in _dl_open () from /lib64/ld-linux-x86-64.so.2
#10 0x00000037c5d26b20 in do_dlopen () from /lib64/libc.so.6
#11 0x00000037c580e266 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#12 0x00000037c5d26c77 in __libc_dlopen_mode () from /lib64/libc.so.6
#13 0x00000037c5cfe825 in init () from /lib64/libc.so.6
#14 0x00000037c600cd33 in pthread_once () from /lib64/libpthread.so.0
#15 0x00000037c5cfe954 in backtrace () from /lib64/libc.so.6
#16 0x00000037c5c7054b in __libc_message () from /lib64/libc.so.6
#17 0x00000037c5c75e66 in malloc_printerr () from /lib64/libc.so.6
#18 0x00000037c5c79904 in _int_malloc () from /lib64/libc.so.6
#19 0x00000037c5c7a6b1 in malloc () from /lib64/libc.so.6
#20 0x0000000000457e1a in ngx_alloc ()
#21 0x0000000000443d92 in ngx_palloc_large ()
#22 0x0000000000443e95 in ngx_palloc ()
#23 0x00000000004456ec in ngx_create_temp_buf ()
#24 0x000000000049f79b in ajp_msg_create_buffer ()
#25 0x00000000004a22de in ngx_http_ajp_create_request ()
#26 0x0000000000479593 in ngx_http_upstream_init_request ()
#27 0x0000000000479955 in ngx_http_upstream_init ()
#28 0x00000000004712f8 in ngx_http_read_client_request_body ()
#29 0x00000000004a1a6f in ngx_http_ajp_handler ()
#30 0x000000000046725d in ngx_http_core_content_phase ()
#31 0x0000000000462a23 in ngx_http_core_run_phases ()
#32 0x00000000004a6ac4 in npc_sendRequest ()
#33 0x000000000045cc9f in ngx_epoll_process_events ()
#34 0x0000000000455c83 in ngx_process_events_and_timers ()
#35 0x000000000045b684 in ngx_worker_process_cycle ()
#36 0x0000000000459e55 in ngx_spawn_process ()
#37 0x000000000045bfe9 in ngx_master_process_cycle ()
#38 0x000000000044318d in main ()
error log
*** glibc detected *** nginx: worker process: malloc(): memory corruption: 0x0000000000ee8c00 ***
*** glibc detected *** nginx: worker process: malloc(): memory corruption: 0x0000000000ee8c00 ***
var /proc/pid/stack
[<ffffffff810a9a49>] futex_wait_queue_me+0xb9/0xf0
[<ffffffff810aab58>] futex_wait+0x1f8/0x380
[<ffffffff810ac2c1>] do_futex+0x121/0xb60
[<ffffffff810acd7b>] sys_futex+0x7b/0x170
[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
When I got the error, nginx process hanged.
because of the malloc error process, all proceses hang Sometimes.
In error log, there are no backtrace.
So, I guess there is a dead lock between malloc and backtrace(or printerr).
I used 'accept_mutex off' option, and it just reduced the error. (It's not a perfect solution)
I'm using nginx-0.8.54.
Related
I'm using this:
Future<Object> get(String endpoint) async {
var httpClientRequest = await httpClient.getUrl(Uri.parse(_url + endpoint));
_addCookies(httpClientRequest);
final httpClientResponse = await httpClientRequest.close();
return httpClientResponse
.transform(utf8.decoder)
.transform(json.decoder)
.first;
}
from here https://stackoverflow.com/a/60344779/10116440
to get a json from my API. But I get
Unhandled exception:
FormatException: Unexpected character (at character 1)
<!DOCTYPE html>
^
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1394:5)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1261:9)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:926:22)
#3 _JsonStringDecoderSink.addSlice (dart:convert-patch/convert_patch.dart:1480:13)
#4 _JsonStringDecoderSink.add (dart:convert-patch/convert_patch.dart:1485:5)
#5 _ConverterStreamEventSink.add (dart:convert/chunked_conversion.dart:74:18)
#6 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:122:24)
#7 _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
#8 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
#9 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
#10 _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:70:11)
#11 _EventSinkWrapper.add (dart:async/stream_transformers.dart:17:11)
#12 _StringAdapterSink.add (dart:convert/string_conversion.dart:238:11)
#13 _StringAdapterSink.addSlice (dart:convert/string_conversion.dart:243:7)
#14 _Utf8ConversionSink.addSlice (dart:convert/string_conversion.dart:314:20)
#15 _Utf8ConversionSink.add (dart:convert/string_conversion.dart:307:5)
#16 _ConverterStreamEventSink.add (dart:convert/chunked_conversion.dart:74:18)
#17 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:122:24)
#18 _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
#19 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
#20 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
#21 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:134:11)
#22 _ForwardingStream._handleData (dart:async/stream_pipe.dart:100:10)
#23 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:166:13)
#24 _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
#25 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
#26 _DelayedData.perform (dart:async/stream_impl.dart:593:14)
#27 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:709:11)
#28 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:669:7)
#29 _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#30 _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#31 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#32 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:175:5)
but I'm positive that the API returns json, not HTML.
What is going on? My API doesn't even return HTML, how can it complain that there's a doctype?
By default, most web app servers reply with various HTML pages when an error occurs (404 not found, 401 not authorized, 500 internal exception etc.)
Try checking the HTTP status code of the response instead of assuming it's always a successful JSON response. If the status code is not 200, it may not be a JSON.
I have just installed a fresh copy of WordPress on a Google GCP App Engine STANDARD environment following these steps: https://cloud.google.com/community/tutorials/run-wordpress-on-appengine-standard
The last step is pretty unclear or uncomplete. I have create the bucket (GCP Storage), installed the GCS official plugin (0.1.5) but when I upload some images on media folder i have this error:
Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: `GET https://www.googleapis.com/storage/v1/b/xxx-news.appspot.com/o/1%2F2019%2F11` resulted in a `404 Not Found` response: { "error": { "code": 404, "message": "No such object: xxx-news.appspot.com/1/2019/11", "errors": [ (truncated...) in /srv/wp-content/plugins/gcs/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113 Stack trace: #0 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #2 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) #3 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #4 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Promise\TaskQueue->run(true) #5 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn() #6 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending() #7 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList() #8 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending() #9 /srv/wp-content/plugins/gcs/vendor/guzzlehttp/guzzle/src/Client.php(106): GuzzleHttp\Promise\Promise->wait() #10 /srv/wp-content/plugins/gcs/vendor/google/auth/src/HttpHandler/Guzzle6HttpHandler.php(34): GuzzleHttp\Client->send(Object(GuzzleHttp\Psr7\Request), Array) #11 [internal function]: Google\Auth\HttpHandler\Guzzle6HttpHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #12 /srv/wp-content/plugins/gcs/gcs.php(134): call_user_func_array(Object(Google\Auth\HttpHandler\Guzzle6HttpHandler), Array) #13 [internal function]: Google\Cloud\Storage\WordPress\{closure}(Object(GuzzleHttp\Psr7\Request), Array) #14 /srv/wp-content/plugins/gcs/vendor/google/cloud-core/src/ExponentialBackoff.php(74): call_user_func_array(Object(Closure), Array) #15 /srv/wp-content/plugins/gcs/vendor/google/cloud-core/src/RequestWrapper.php(166): Google\Cloud\Core\ExponentialBackoff->execute(Object(Closure), Array) #16 /srv/wp-content/plugins/gcs/vendor/google/cloud-core/src/RestTrait.php(95): Google\Cloud\Core\RequestWrapper->send(Object(GuzzleHttp\Psr7\Request), Array) #17 /srv/wp-content/plugins/gcs/vendor/google/cloud-storage/src/Connection/Rest.php(195): Google\Cloud\Storage\Connection\Rest->send('objects', 'get', Array) #18 /srv/wp-content/plugins/gcs/vendor/google/cloud-storage/src/StorageObject.php(1123): Google\Cloud\Storage\Connection\Rest->getObject(Array) #19 /srv/wp-content/plugins/gcs/vendor/google/cloud-storage/src/StorageObject.php(1074): Google\Cloud\Storage\StorageObject->reload(Array) #20 /srv/wp-content/plugins/gcs/vendor/google/cloud-storage/src/StreamWrapper.php(583): Google\Cloud\Storage\StorageObject->info() #21 /srv/wp-content/plugins/gcs/vendor/google/cloud-storage/src/StreamWrapper.php(488): Google\Cloud\Storage\StreamWrapper->urlStatFile() #22 [internal function]: Google\Cloud\Storage\StreamWrapper->url_stat('gs://xxx-news....', 2) #23 /srv/wp-includes/functions.php(1922): file_exists('gs://xxx-news....') #24 /srv/wp-includes/functions.php(2254): wp_mkdir_p('gs://xxx-news....') #25 /srv/wp-admin/includes/file.php(837): wp_upload_dir('2019-11-20 11:1...') #26 /srv/wp-admin/includes/file.php(953): _wp_handle_upload(Array, Array, '2019-11-20 11:1...', 'wp_handle_uploa...') #27 /srv/wp-admin/includes/media.php(301): wp_handle_upload(Array, Array, '2019-11-20 11:1...') #28 /srv/wp-admin/async-upload.php(93): media_handle_upload('async-upload', 0) #29 /srv/gae-app.php(53): require('/srv/wp-admin/a...') #30 {main} thrown in /srv/wp-content/plugins/gcs/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113
I suppose i'm missing something on my ACL permission but i don't have idea how to proceed
Thanks!
GCS 0.1.5 present bugs on media loading
I have used instead 0.1.4
https://github.com/GoogleCloudPlatform/wordpress-plugins/issues/68
I'm getting following crash issue on QNX and it's hard to reproduce and cannot reproduce on Window platform.
*Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x79a7da20 in pcache1EnforceMaxPage () from libClient.so
[Current thread is 35 (pid 1601600 tid 35)]
(gdb) bt
#0 0x79a7da20 in pcache1EnforceMaxPage () from libClient.so
#1 0x79a7e2a0 in sqlite3PagerSetCachesize () from libClient.so
#2 0x79a7ee9c in sqlite3BtreeSetCacheSize () from libClient.so
#3 0x79ade4b0 in sqlite3InitOne () from libClient.so
#4 0x79ade80c in sqlite3Init () from libClient.so
#5 0x79adebb0 in sqlite3ReadSchema () from libClient.so
#6 0x79adf2a4 in sqlite3LocateTable () from libClient.so
#7 0x79adfa98 in selectExpander () from libClient.so
#8 0x79a8065c in sqlite3WalkSelect () from libClient.so
#9 0x79a8b5e0 in sqlite3SelectPrep () from libClient.so
#10 0x79ac6f84 in sqlite3Select () from libClient.so
#11 0x79ad8704 in sqlite3Parser () from libClient.so
#12 0x79adaa40 in sqlite3RunParser () from libClient.so
#13 0x79adc574 in sqlite3Prepare () from libClient.so
#14 0x79adc934 in sqlite3LockAndPrepare () from libClient.so
#15 0x79adcbcc in sqlite3_prepare_v2 () from libClient.so*
I am trying to use QML with cygwin.
I prepared this very simple code, simple.qml.
import QtQuick 2.0
Rectangle { }
Then, qmlscene-qt5 simple.qml causes segmentation fault. How can I avoid segfaluts?
Software versions are shown below:
Windows: both 8.1 64bit and 10 64bit cause segfault
cygwin: 2.5.0-1 x86
xorg-server: 1.18.2-1
LibQt5Core5, qt5-declarative-tools and etc.: 5.5.1-1
Incidentally, this code does not cause segfault.
import QtQuick 2.0
import QtQuick.Window 2.0
import QtQuick.Controls 1.0
Window{
title: 'window'
Label{
// text: 'hello, world!'
// If I uncomment the above line, a segfault emerges.
}
}
Thank you for reading this question.
FYI, a gdb log is shown below. I execute gdb /usr/bin/qmlscene-qt5 and examine where after segfaulted.
#0 0xfd6411db in ?? ()
#1 0x444f41b6 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#2 0x444f465a in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#3 0x4441426d in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#4 0x44414ac0 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#5 0x4440bd7d in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#6 0x4440c247 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#7 0x44527ca5 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#8 0x442578c6 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#9 0x44228415 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#10 0x44228941 in gallium_dri!__driDriverGetExtensions_swrast ()
from C:/cygwin/lib/dri/swrast_dri.so
#11 0x6727f40f in QOpenGLFunctions::glDrawElements (indices=<optimized out>,
type=5123, count=<optimized out>, mode=<optimized out>,
this=<optimized out>) at /usr/include/qt5/QtGui/qopenglfunctions.h:727
#12 QSGBatchRenderer::Renderer::renderMergedBatch (this=this#entry=0x8041e638,
batch=<optimized out>)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2299
#13 0x672811a7 in QSGBatchRenderer::Renderer::renderMergedBatch (
batch=<optimized out>, this=0x8041e638)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2512
#14 QSGBatchRenderer::Renderer::renderBatches (this=this#entry=0x8041e638)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2493
#15 0x67286f3f in QSGBatchRenderer::Renderer::render (this=0x8041e638)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:2681
#16 0x6728fc33 in QSGRenderer::renderScene (this=this#entry=0x8041e638,
bindable=...)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgrenderer.cpp:208
#17 0x67290657 in QSGRenderer::renderScene (this=0x8041e638, fboId=0)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/coreapi/qsgrenderer.cpp:168
#18 0x6729fc84 in QSGRenderContext::renderNextFrame (this=0x802763f0,
renderer=0x8041e638, fboId=0)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgcontext.cpp:558
#19 0x672e6d30 in QQuickWindowPrivate::renderSceneGraph (
this=this#entry=0x80275ff0, size=...)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/items/qquickwindow.cpp:383
#20 0x672b80a5 in QSGGuiThreadRenderLoop::renderWindow (
this=this#entry=0x8027e1e8, window=0x80275fd8)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgrenderloop.cpp:378
#21 0x672b9c9f in QSGGuiThreadRenderLoop::exposureChanged (this=0x8027e1e8,
window=0x80275fd8)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/scenegraph/qsgrenderloop.cpp:422
#22 0x67cba4f9 in QWindow::event (this=0x80275fd8, ev=0x28c834)
at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qwindow.cpp:2053
#23 0x672f40ce in QQuickWindow::event (this=0x80275fd8, e=0x28c834)
at /usr/src/debug/qt5-declarative-5.5.1-1/src/quick/items/qquickwindow.cpp:1413
#24 0x6471b4a1 in QApplicationPrivate::notify_helper (
this=this#entry=0x80060500, receiver=receiver#entry=0x80275fd8,
e=e#entry=0x28c834)
at /usr/src/debug/qt5-base-5.5.1-1/src/widgets/kernel/qapplication.cpp:3716
#25 0x647207dc in QApplication::notify (this=0x28cba4, receiver=0x80275fd8,
e=0x28c834)
at /usr/src/debug/qt5-base-5.5.1-1/src/widgets/kernel/qapplication.cpp:3499
#26 0x68d90d62 in QCoreApplication::notifyInternal (this=0x28cba4,
receiver=0x80275fd8, event=0x28c834)
at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qcoreapplication.cpp:965
#27 0x67cb3377 in QCoreApplication::sendSpontaneousEvent (event=0x28c834,
receiver=0x80275fd8)
at /usr/src/debug/qt5-base-5.5.1-1/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:227
#28 QGuiApplicationPrivate::processExposeEvent (e=e#entry=0x802fdef0)
at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qguiapplication.cpp:2648
#29 0x67cb41b8 in QGuiApplicationPrivate::processWindowSystemEvent (
e=e#entry=0x802fdef0)
at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qguiapplication.cpp:1643
#30 0x67c9b020 in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
at /usr/src/debug/qt5-base-5.5.1-1/src/gui/kernel/qwindowsysteminterface.cpp:625
#31 0x64654546 in userEventSourceDispatch (source=0x800a4ea0)
at /usr/src/debug/qt5-base-5.5.1-1/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70
#32 0x55ff0173 in g_main_context_dispatch () from /usr/bin/cygglib-2.0-0.dll
#33 0x55ff03da in g_main_context_dispatch () from /usr/bin/cygglib-2.0-0.dll
#34 0x55ff047a in g_main_context_iteration () from /usr/bin/cygglib-2.0-0.dll
#35 0x68dd3b12 in QEventDispatcherGlib::processEvents (this=0x80060710,
flags=...)
at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventdispatcher_glib.cpp:418
#36 0x68d8fd3f in QEventLoop::processEvents (flags=..., this=0x28caac)
at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventloop.cpp:128
#37 QEventLoop::exec (this=this#entry=0x28caac, flags=flags#entry=...)
at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qeventloop.cpp:204
#38 0x68d96a43 in QCoreApplication::exec ()
at /usr/src/debug/qt5-base-5.5.1-1/src/corelib/kernel/qcoreapplication.cpp:1229
#39 0x00404157 in main (argc=2, argv=0x28cc5c)
at /usr/src/debug/qt5-declarative-5.5.1-1/tools/qmlscene/main.cpp:598
Try reverting dri-drivers to version 11.0.9-1
There is a similar issue on 32bit.
https://cygwin.com/ml/cygwin/2016-04/msg00254.html
I have a really nasty issue thats causing me to tear my hair out. A bad access error is occurring deep within core data - In terms of visible code I've narrowed it down to a RESTKit one-to-one relationship mapping operation.
I'm using sqlite as the persistent store. This issue does not occur if I use an in-memory etc and only happens on app restart on a non-empty sqlite.
Here is the stack trace from the NSManagedObjectContextQueue:
#0 0x03b0380a in semaphore_wait_trap ()
#1 0x03699cde in _dispatch_thread_semaphore_wait ()
#2 0x03697516 in _dispatch_barrier_sync_f_slow ()
#3 0x03697413 in dispatch_barrier_sync_f ()
#4 0x010562a2 in _perform ()
#5 0x01056ebe in -[NSManagedObjectContext(_NestedContextSupport) newValueForRelationship:forObjectWithID:withContext:error:] ()
#6 0x0105f1c4 in -[NSFaultHandler retainedFulfillAggregateFaultForObject:andRelationship:withContext:] ()
#7 0x0105eb97 in -[_NSFaultingMutableSet willRead] ()
#8 0x0105c204 in -[_NSFaultingMutableSet containsObject:] ()
#9 0x0104ec9e in -[NSManagedObject(_NSInternalMethods) _includeObject:intoPropertyWithKey:andIndex:] ()
#10 0x0104eae4 in -[NSManagedObject(_NSInternalMethods) _maintainInverseRelationship:forProperty:oldDestination:newDestination:] ()
#11 0x0104e332 in -[NSManagedObject(_NSInternalMethods) _didChangeValue:forRelationship:named:withInverse:] ()
#12 0x0104df88 in -[NSManagedObjectContext observeValueForKeyPath:ofObject:change:context:] ()
#13 0x02ce48c7 in NSKeyValueNotifyObserver ()
#14 0x02ce6206 in NSKeyValueDidChange ()
#15 0x02ca28dd in -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] ()
#16 0x01030825 in _PF_ManagedObject_DidChangeValueForKeyIndex ()
#17 0x0102fcad in _sharedIMPL_setvfk_core ()
#18 0x010614a6 in -[NSManagedObject(_PFDynamicAccessorsAndPropertySupport) _setGenericValue:forKey:withIndex:flags:] ()
#19 0x0104fb99 in _PF_Handler_Public_SetProperty ()
#20 0x0104fb23 in -[NSManagedObject setValue:forKey:] ()
#21 0x02d2470a in -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] ()
#22 0x002e7cc1 in -[RKMappingOperation mapOneToOneRelationshipWithValue:mapping:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMappingOperation.m:608
#23 0x002eb688 in -[RKMappingOperation applyRelationshipMappings] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMappingOperation.m:801
#24 0x002ed9d0 in -[RKMappingOperation main] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMappingOperation.m:899
#25 0x02d6a829 in -[__NSOperationInternal _start:] ()
#26 0x02ce7558 in -[NSOperation start] ()
#27 0x002dc1b5 in -[RKMapperOperation mapRepresentation:toObject:atKeyPath:usingMapping:metadata:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:242
#28 0x002db7dc in __63-[RKMapperOperation mapRepresentations:atKeyPath:usingMapping:]_block_invoke at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:214
#29 0x0330c5eb in __NSArrayEnumerate ()
#30 0x0330c196 in -[NSArray enumerateObjectsWithOptions:usingBlock:] ()
#31 0x0330c0a5 in -[NSArray enumerateObjectsUsingBlock:] ()
#32 0x002db48c in -[RKMapperOperation mapRepresentations:atKeyPath:usingMapping:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:211
#33 0x002dd410 in -[RKMapperOperation mapRepresentationOrRepresentations:atKeyPath:usingMapping:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:299
#34 0x002dde72 in -[RKMapperOperation mapSourceRepresentationWithMappingsDictionary:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:347
#35 0x002de83b in -[RKMapperOperation main] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/ObjectMapping/RKMapperOperation.m:386
#36 0x02d6a829 in -[__NSOperationInternal _start:] ()
#37 0x02ce7558 in -[NSOperation start] ()
#38 0x003385b7 in __73-[RKManagedObjectResponseMapperOperation performMappingWithObject:error:]_block_invoke at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/Network/RKResponseMapperOperation.m:472
#39 0x01055fef in developerSubmittedBlockToNSManagedObjectContextPerform ()
#40 0x036aa4b0 in _dispatch_client_callout ()
#41 0x03697778 in _dispatch_barrier_sync_f_invoke ()
#42 0x03697422 in dispatch_barrier_sync_f ()
#43 0x01055f1f in -[NSManagedObjectContext performBlockAndWait:] ()
#44 0x00336da1 in -[RKManagedObjectResponseMapperOperation performMappingWithObject:error:] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/Network/RKResponseMapperOperation.m:427
#45 0x00334723 in -[RKResponseMapperOperation main] at /Users/mtford/Playground/xxx/xxx/Pods/RestKit/Code/Network/RKResponseMapperOperation.m:337
#46 0x02d6a829 in -[__NSOperationInternal _start:] ()
#47 0x02ce7558 in -[NSOperation start] ()
#48 0x02d6caf4 in __NSOQSchedule_f ()
#49 0x036aa4b0 in _dispatch_client_callout ()
#50 0x0369807f in _dispatch_queue_drain ()
#51 0x03697e7a in _dispatch_queue_invoke ()
#52 0x03698e1f in _dispatch_root_queue_drain ()
#53 0x03699137 in _dispatch_worker_thread2 ()
#54 0x039c2e72 in _pthread_wqthread ()
And here is the stack trace from the main thread where the bad access occur:
#0 0x01005502 in _nameForEntityDescription () // Bad access here
#1 0x010054c7 in -[NSSQLCore entityForFetchRequest:] ()
#2 0x01005595 in -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] ()
#3 0x010604a4 in -[NSSQLCore newFetchedPKsForSourceID:andRelationship:] ()
#4 0x0105f7b6 in -[NSSQLCore newValueForRelationship:forObjectWithID:withContext:error:] ()
#5 0x0105f44e in -[NSPersistentStoreCoordinator(_NSInternalMethods) newValueForRelationship:forObjectWithID:withContext:error:] ()
#6 0x010d4e90 in __107-[NSManagedObjectContext(_NestedContextSupport) newValueForRelationship:forObjectWithID:withContext:error:]_block_invoke ()
#7 0x01056321 in internalBlockToNSManagedObjectContextPerform ()
#8 0x036aa4b0 in _dispatch_client_callout ()
#9 0x03697778 in _dispatch_barrier_sync_f_invoke ()
#10 0x03697422 in dispatch_barrier_sync_f ()
#11 0x010562a2 in _perform ()
#12 0x01056ebe in -[NSManagedObjectContext(_NestedContextSupport) newValueForRelationship:forObjectWithID:withContext:error:] ()
#13 0x010d4e90 in __107-[NSManagedObjectContext(_NestedContextSupport) newValueForRelationship:forObjectWithID:withContext:error:]_block_invoke ()
#14 0x01056321 in internalBlockToNSManagedObjectContextPerform ()
#15 0x03699440 in _dispatch_barrier_sync_f_slow_invoke ()
#16 0x036aa4b0 in _dispatch_client_callout ()
#17 0x0369875e in _dispatch_main_queue_callback_4CF ()
#18 0x03377a5e in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#19 0x032b86bb in __CFRunLoopRun ()
#20 0x032b7ac3 in CFRunLoopRunSpecific ()
#21 0x032b78db in CFRunLoopRunInMode ()
#22 0x0413b9e2 in GSEventRunModal ()
#23 0x0413b809 in GSEventRun ()
#24 0x01b68d3b in UIApplicationMain ()
#25 0x0002a76d in main at /Users/mtford/Playground/xxx/xxx/xxx/main.m:18
I realise I haven't provided much context in terms of mappings+code etc, but does anyone have any ideas based on the symbols involved in the stack trace what the issue may be here?
Cheers.
So, it turns out i'd accidentally ticked transient on one of my relationships at some point... what a nightmare :)