why is laravel-stripe-webhooks signature invalid on production server, but same code works fine on local dev - stripe-payments

I have implemented laravel-stripe-webhooks successfully in my Laravel 6 app and on my local dev copy can successfully process the payload back from Stripe Checkout. However, when I commit my app to my Forge production server, I get an invalid signature error and my app repots 500 back to Stripe.
I have checked and re-checked the Stripe live webhook secret key (not the Stripe CLI one) and it matches. The other possible reason I read for this is JSON parsing that changes the payload received and causes a mismatch that fails the signature verification. Since my code works fine on my dev server (using Stripe CLI) I can rule out JSON parsing as the issue, as that would exist also in the dev version and cause the same error there.
Here's the complete error I get from my Forge production app:
[2023-01-27 14:49:26] production.ERROR: The signature is invalid. {"exception":"[object] (Spatie\\WebhookClient\\Exceptions\\WebhookFailed(code: 0): The signature is invalid. at /home/forge/divorcesplit.com/vendor/spatie/laravel-webhook-client/src/Exceptions/WebhookFailed.php:11)
[stacktrace]
#0 /home/forge/mywebsite.com/vendor/spatie/laravel-webhook-client/src/WebhookProcessor.php(44): Spatie\\WebhookClient\\Exceptions\\WebhookFailed::invalidSignature()
#1 /home/forge/mywebsite.com/vendor/spatie/laravel-webhook-client/src/WebhookProcessor.php(28): Spatie\\WebhookClient\\WebhookProcessor->ensureValidSignature()
#2 /home/forge/mywebsite.com/vendor/spatie/laravel-stripe-webhooks/src/StripeWebhooksController.php(27): Spatie\\WebhookClient\\WebhookProcessor->process()
#3 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): Spatie\\StripeWebhooks\\StripeWebhooksController->__invoke(Object(Illuminate\\Http\\Request), NULL)
#4 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Spatie\\StripeWebhooks\\StripeWebhooksController), '__invoke')
#5 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController()
#6 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\\Routing\\Route->run()
#7 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#8 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#9 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#10 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#11 /home/forge/mywebsite.com/app/Http/Middleware/VerifyCsrfToken.php(32): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#12 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#13 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#14 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Session\\Middleware\\AuthenticateSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#15 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#16 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#17 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#18 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#19 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#20 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#21 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#22 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#23 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#24 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#25 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#26 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#27 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#28 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#29 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#30 /home/forge/mywebsite.com/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#32 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#33 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#39 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#42 /home/forge/mywebsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#43 /home/forge/mywebsite.com/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#44 {main}
"}
Any suggestions are very welcome because until I fic this I'm dead in the water and my app cannto process Stripe transactions.

Related

whatsapp chatbot don't run in heroku

I m building a chatbot whattsapp and deployd in heroku. But I am But I'm stuck at that point
info: You're up to date
info: [session:browser] Initializing browser...
warn: [session:browser] Chrome not found, using chromium
error: [session:browser] Error no open browser
error: [session:browser] Failed to launch the browser process!
[0523/163914.552659:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
#0 0x55853747db39 base::debug::CollectStackTrace()
#1 0x5585373f04c3 base::debug::StackTrace::StackTrace()
#2 0x558537400c80 logging::LogMessage::~LogMessage()
#3 0x558535e92f5e content::ZygoteHostImpl::Init()
#4 0x55853739acf8 content::ContentMainRunnerImpl::Initialize()
#5 0x558537398e0b content::RunContentProcess()
#6 0x558537398f5c content::ContentMain()
#7 0x5585373ea3d2 headless::(anonymous namespace)::RunContentMain()
#8 0x5585373ea0bc headless::HeadlessShellMain()
#9 0x5585349eba03 ChromeMain
#10 0x7f0f848460b3 __libc_start_main
#11 0x5585349eb82a _start
Received signal 6
#0 0x55853747db39 base::debug::CollectStackTrace()
#1 0x5585373f04c3 base::debug::StackTrace::StackTrace()
#2 0x55853747d6db base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f0f860063c0 (/usr/lib/x86_64-linux-gnu/libpthread-2.31.so+0x153bf)
#4 0x7f0f8486518b gsignal
#5 0x7f0f84844859 abort
#6 0x55853747c665 base::debug::BreakDebugger()
#7 0x5585374010f2 logging::LogMessage::~LogMessage()
#8 0x558535e92f5e content::ZygoteHostImpl::Init()
#9 0x55853739acf8 content::ContentMainRunnerImpl::Initialize()
#10 0x558537398e0b content::RunContentProcess()
#11 0x558537398f5c content::ContentMain()
#12 0x5585373ea3d2 headless::(anonymous namespace)::RunContentMain()
#13 0x5585373ea0bc headless::HeadlessShellMain()
#14 0x5585349eba03 ChromeMain
#15 0x7f0f848460b3 __libc_start_main
#16 0x5585349eb82a _start
r8: 0000000000000000 r9: 00007ffd34ef4aa0 r10: 0000000000000008 r11: 0000000000000246
r12: 00007ffd34ef5db0 r13: aaaaaaaaaaaaaaaa r14: 00007ffd34ef5dc0 r15: 00007ffd34ef5540
di: 0000000000000002 si: 00007ffd34ef4aa0 bp: 00007ffd34ef4cf0 bx: 00007f0f834db240
dx: 0000000000000000 ax: 0000000000000000 cx: 00007f0f8486518b sp: 00007ffd34ef4aa0
ip: 00007f0f8486518b efl: 0000000000000246 cgf: 0000000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
Error: Failed to launch the browser process!
[0523/163914.552659:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
#0 0x55853747db39 base::debug::CollectStackTrace()
#1 0x5585373f04c3 base::debug::StackTrace::StackTrace()
#2 0x558537400c80 logging::LogMessage::~LogMessage()
#3 0x558535e92f5e content::ZygoteHostImpl::Init()
#4 0x55853739acf8 content::ContentMainRunnerImpl::Initialize()
#5 0x558537398e0b content::RunContentProcess()
#6 0x558537398f5c content::ContentMain()
#7 0x5585373ea3d2 headless::(anonymous namespace)::RunContentMain()
#8 0x5585373ea0bc headless::HeadlessShellMain()
#9 0x5585349eba03 ChromeMain
#10 0x7f0f848460b3 __libc_start_main
#11 0x5585349eb82a _start
Received signal 6
#0 0x55853747db39 base::debug::CollectStackTrace()
#1 0x5585373f04c3 base::debug::StackTrace::StackTrace()
#2 0x55853747d6db base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f0f860063c0 (/usr/lib/x86_64-linux-gnu/libpthread-2.31.so+0x153bf)
#4 0x7f0f8486518b gsignal
#5 0x7f0f84844859 abort
#6 0x55853747c665 base::debug::BreakDebugger()
#7 0x5585374010f2 logging::LogMessage::~LogMessage()
#8 0x558535e92f5e content::ZygoteHostImpl::Init()
#9 0x55853739acf8 content::ContentMainRunnerImpl::Initialize()
#10 0x558537398e0b content::RunContentProcess()
#11 0x558537398f5c content::ContentMain()
#12 0x5585373ea3d2 headless::(anonymous namespace)::RunContentMain()
#13 0x5585373ea0bc headless::HeadlessShellMain()
#14 0x5585349eba03 ChromeMain
#15 0x7f0f848460b3 __libc_start_main
#16 0x5585349eb82a _start
r8: 0000000000000000 r9: 00007ffd34ef4aa0 r10: 0000000000000008 r11: 0000000000000246
r12: 00007ffd34ef5db0 r13: aaaaaaaaaaaaaaaa r14: 00007ffd34ef5dc0 r15: 00007ffd34ef5540
di: 0000000000000002 si: 00007ffd34ef4aa0 bp: 00007ffd34ef4cf0 bx: 00007f0f834db240
dx: 0000000000000000 ax: 0000000000000000 cx: 00007f0f8486518b sp: 00007ffd34ef4aa0
ip: 00007f0f8486518b efl: 0000000000000246 cgf: 0000000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
at onClose (/app/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:193:20)
at Interface.<anonymous> (/app/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:183:68)
at Interface.emit (events.js:388:22)
at Interface.close (readline.js:429:8)
at Socket.onend (readline.js:202:10)
at Socket.emit (events.js:388:22)
at endReadableNT (internal/streams/readable.js:1336:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
robo.js
const wppconnect = require('#wppconnect-team/wppconnect');
const puppeteer = require('puppeteer');
puppeteer.launch({ args: ['--no-sandbox', '--disable--gpu', '--disable-setuid-sandbox'] });
(async () => {
try {
const cliente = await wppconnect.create((cliente) => {
return cliente
})
start(cliente);
} catch (err) {
console.log(err)
}
})()
const start = async (client) => {
try {
//usuário manda mensagem
await client.onMessage(async (message) => {
console.log('Mensagem digitada pelo usuário: ' + message.body);
console.log("Body " + message)
//stages(client,message)
//const result = await client.sendText(message.from, 'PING! Mande um PONG para mim:')
});
} catch (err) {
console.error('Error ', erro)
}
}
package.json
{
"name": "robo",
"version": "1.0.0",
"description": "",
"main": "robo.js",
"scripts": {
"test": "nodemon robo.js",
"start": "node robo.js "
},
"dependencies": {
"#wppconnect-team/wppconnect": "^1.5.1",
"puppeteer": "^5.5.0"
}
}
I already followed these steps and I still have the error
Running Puppeteer on Heroku Running Puppeteer on Heroku requires some
additional dependencies that aren't included on the Linux box that
Heroku spins up for you. To add the dependencies on deploy, add the
Puppeteer Heroku buildpack to the list of buildpacks for your app
under Settings > Buildpacks.
The url for the buildpack is
https://github.com/jontewks/puppeteer-heroku-buildpack
Ensure that you're using '--no-sandbox' mode when launching Puppeteer.
This can be done by passing it as an argument to your .launch() call:
puppeteer.launch({ args: ['--no-sandbox'] });.
When you click add buildpack, simply paste that url into the input,
and click save. On the next deploy, your app will also install the
dependencies that Puppeteer needs to run.
If you need to render Chinese, Japanese, or Korean characters you may
need to use a buildpack with additional font files like
https://github.com/CoffeeAndCode/puppeteer-heroku-buildpack
There's also another simple guide from #timleland that includes a
sample project: https://timleland.com/headless-chrome-on-heroku/.
https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-heroku
Here is the answer: i had to create this whole tutorial to make it work:
https://medium.com/como-programar-em-1-dia/como-fazer-um-rob%C3%B4-de-whatsapp-chatbot-em-1-dia-644ee98054d7

flutter Android Studio: Error retrieving device properties for ro.product.cpu.abi:

Want to improve this post? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. Answers without enough detail may be edited or deleted.
When I try to run my app in an emulator in Android Studio I get the following error. I have to say that it worked before and stopped working after some updates of SDK to v.29. Is there something I have to change now?
I tried to kill and restart adb server and disabling heap protection so far..
Error retrieving device properties for ro.product.cpu.abi:
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
--------- beginning of main
06-05 21:14:13.850 I/GnssLocationProvider( 1898): WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo#29d78c9)
Unhandled exception:
Exit code -1073740940 from: C:\Users\Viktor\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell -x logcat -v time -t 1
#0 _runWithLoggingSync (package:flutter_tools/src/base/process.dart:360:7)
#1 runCheckedSync (package:flutter_tools/src/base/process.dart:289:10)
#2 AndroidDevice.lastLogcatTimestamp (package:flutter_tools/src/android/android_device.dart:513:27)
#3 _AdbLogReader._start (package:flutter_tools/src/android/android_device.dart:688:41)
#4 _runGuarded (dart:async/stream_controller.dart:805:24)
#5 _BroadcastStreamController._subscribe (dart:async/broadcast_stream_controller.dart:213:7)
#6 _ControllerStream._createSubscription (dart:async/stream_controller.dart:818:19)
#7 _StreamImpl.listen (dart:async/stream_impl.dart:472:9)
#8 FlutterDevice.startEchoingDeviceLog (package:flutter_tools/src/resident_runner.dart:318:71)
#9 FlutterDevice.runHot (package:flutter_tools/src/resident_runner.dart:361:5)
<asynchronous suspension>
#10 HotRunner.run (package:flutter_tools/src/run_hot.dart:253:39)
<asynchronous suspension>
#11 AppDomain.startApp.<anonymous closure> (package:flutter_tools/src/commands/daemon.dart:389:23)
#12 AppDomain.launch.<anonymous closure> (package:flutter_tools/src/commands/daemon.dart:449:26)
<asynchronous suspension>
#13 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:142:29)
<asynchronous suspension>
#14 _rootRun (dart:async/zone.dart:1124:13)
#15 _CustomZone.run (dart:async/zone.dart:1021:19)
#16 _runZoned (dart:async/zone.dart:1516:10)
#17 runZoned (dart:async/zone.dart:1463:12)
#18 AppContext.run (package:flutter_tools/src/base/context.dart:141:18)
<asynchronous suspension>
#19 AppInstance._runInZone (package:flutter_tools/src/commands/daemon.dart:819:20)
#20 AppDomain.launch (package:flutter_tools/src/commands/daemon.dart:447:15)
<asynchronous suspension>
#21 AppDomain.startApp (package:flutter_tools/src/commands/daemon.dart:383:12)
<asynchronous suspension>
#22 RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:301:38)
<asynchronous suspension>
#23 FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:559:18)
#24 _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:77:64)
#25 _rootRunUnary (dart:async/zone.dart:1132:38)
#26 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#27 _FutureListener.handleValue (dart:async/future_impl.dart:126:18)
#28 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639:45)
#29 Future._propagateToListeners (dart:async/future_impl.dart:668:32)
#30 Future._complete (dart:async/future_impl.dart:473:7)
#31 _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#32 _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:28:18)
#33 _completeOnAsyncReturn (dart:async-patch/async_patch.dart:294:13)
#34 RunCommand.usageValues (package:flutter_tools/src/commands/run.dart)
#35 _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:77:64)
#36 _rootRunUnary (dart:async/zone.dart:1132:38)
#37 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#38 _FutureListener.handleValue (dart:async/future_impl.dart:126:18)
#39 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639:45)
#40 Future._propagateToListeners (dart:async/future_impl.dart:668:32)
#41 Future._complete (dart:async/future_impl.dart:473:7)
#42 _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#43 _AsyncAwaitCompleter.complete.<anonymous closure> (dart:async-patch/async_patch.dart:33:20)
#44 _rootRun (dart:async/zone.dart:1124:13)
#45 _CustomZone.run (dart:async/zone.dart:1021:19)
#46 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#47 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#48 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#49 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:115:13)
#50 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:5)
And here's a picture of the SDK tools. Maybe it's important...
It appears to be an update problem with Platform-Tools version 28, more specific with the ADB tool. There is a temporary fix so you can follow the steps provided in this link https://github.com/flutter/flutter/issues/33938#issuecomment-499250288
PD. If you already installed API 29 version probably you need to downgrade. v.29 --> v.28

Puppeteer/Chromium Failing on Ubuntu Server

I've written an application that runs on my Ubuntu 18.04 x64 server on Digital Ocean. I'm keeping the application running with PM2.
The code runs successfully for the first several iterations (it's a web scraper that runs every 15 minutes) but after a few hours the app breaks down. Here are the error logs (each starts with date):
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
info # 03-20-2019 19:30:15 –– No updates –– 2019-20-03 // The is a successful log...
debug # 03-20-2019 19:45:44 –– Navigation Timeout Exceeded: 30000ms exceeded
debug # 03-20-2019 20:15:20 –– Failed to launch chrome!
[0320/201518.129756:FATAL:zygote_host_impl_linux.cc(170)] Check failed: process.IsValid(). Failed to launch zygote process
#0 0x55e0a9ef8f29 base::debug::CollectStackTrace()
#1 0x55e0a9e5e593 base::debug::StackTrace::StackTrace()
#2 0x55e0a9e72d1e logging::LogMessage::~LogMessage()
#3 0x55e0ab4dbd79 service_manager::ZygoteHostImpl::LaunchZygote()
#4 0x55e0a9ab4950 content::(anonymous namespace)::LaunchZygoteHelper()
#5 0x55e0ab4db128 service_manager::ZygoteCommunication::Init()
#6 0x55e0ab4e1353 service_manager::CreateGenericZygote()
#7 0x55e0a9ab41fb content::ContentMainRunnerImpl::Initialize()
#8 0x55e0a9ae6fca service_manager::Main()
#9 0x55e0a9ab2791 content::ContentMain()
#10 0x55e0ae14e178 headless::(anonymous namespace)::RunContentMain()
#11 0x55e0ae14e205 headless::HeadlessBrowserMain()
#12 0x55e0a9ae5ca3 headless::HeadlessShellMain()
#13 0x55e0a7a1d1ac ChromeMain
#14 0x7f59a1e33b97 __libc_start_main
#15 0x55e0a7a1d02a _start
Received signal 6
#0 0x55e0a9ef8f29 base::debug::CollectStackTrace()
#1 0x55e0a9e5e593 base::debug::StackTrace::StackTrace()
#2 0x55e0a9ef8ab1 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f59a80aa890 <unknown>
#4 0x7f59a1e50e97 gsignal
#5 0x7f59a1e52801 abort
#6 0x55e0a9ef78e5 base::debug::BreakDebugger()
#7 0x55e0a9e72f61 logging::LogMessage::~LogMessage()
#8 0x55e0ab4dbd79 service_manager::ZygoteHostImpl::LaunchZygote()
#9 0x55e0a9ab4950 content::(anonymous namespace)::LaunchZygoteHelper()
#10 0x55e0ab4db128 service_manager::ZygoteCommunication::Init()
#11 0x55e0ab4e1353 service_manager::CreateGenericZygote()
#12 0x55e0a9ab41fb content::ContentMainRunnerImpl::Initialize()
#13 0x55e0a9ae6fca service_manager::Main()
#14 0x55e0a9ab2791 content::ContentMain()
#15 0x55e0ae14e178 headless::(anonymous namespace)::RunContentMain()
#16 0x55e0ae14e205 headless::HeadlessBrowserMain()
#17 0x55e0a9ae5ca3 headless::HeadlessShellMain()
#18 0x55e0a7a1d1ac ChromeMain
#19 0x7f59a1e33b97 __libc_start_main
#20 0x55e0a7a1d02a _start
r8: 0000000000000000 r9: 00007ffc5ad954f0 r10: 0000000000000008 r11: 0000000000000246
r12: 00007ffc5ad95798 r13: 000000000000007a r14: 00007ffc5ad96200 r15: 00007ffc5ad961f8
di: 0000000000000002 si: 00007ffc5ad954f0 bp: 00007ffc5ad95740 bx: 000036f0ed7d7000
dx: 0000000000000000 ax: 0000000000000000 cx: 00007f59a1e50e97 sp: 00007ffc5ad954f0
ip: 00007f59a1e50e97 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
debug # 03-20-2019 20:30:34 –– Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r637110
debug # 03-20-2019 20:45:31 –– Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r637110
debug # 03-20-2019 21:00:30 –– Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r637110
debug # 03-20-2019 21:15:05 –– Failed to launch chrome!
[0320/211503.503077:ERROR:platform_thread_posix.cc(129)] pthread_create: Resource temporarily unavailable (11)
[0320/211503.899485:FATAL:simple_thread.cc(56)] Check failed: success.
#0 0x55e159dbef29 base::debug::CollectStackTrace()
#1 0x55e159d24593 base::debug::StackTrace::StackTrace()
#2 0x55e159d38d1e logging::LogMessage::~LogMessage()
#3 0x55e159d959ff base::SimpleThread::Start()
#4 0x55e15876edd2 content::SandboxHostLinux::Init()
#5 0x55e15997a125 content::ContentMainRunnerImpl::Initialize()
#6 0x55e1599acfca service_manager::Main()
#7 0x55e159978791 content::ContentMain()
#8 0x55e15e014178 headless::(anonymous namespace)::RunContentMain()
#9 0x55e15e014205 headless::HeadlessBrowserMain()
#10 0x55e1599abca3 headless::HeadlessShellMain()
#11 0x55e1578e31ac ChromeMain
#12 0x7f4000b8ab97 __libc_start_main
#13 0x55e1578e302a _start
Received signal 6
#0 0x55e159dbef29 base::debug::CollectStackTrace()
#1 0x55e159d24593 base::debug::StackTrace::StackTrace()
#2 0x55e159dbeab1 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f4006e01890 <unknown>
#4 0x7f4000ba7e97 gsignal
#5 0x7f4000ba9801 abort
#6 0x55e159dbd8e5 base::debug::BreakDebugger()
#7 0x55e159d38f61 logging::LogMessage::~LogMessage()
#8 0x55e159d959ff base::SimpleThread::Start()
#9 0x55e15876edd2 content::SandboxHostLinux::Init()
#10 0x55e15997a125 content::ContentMainRunnerImpl::Initialize()
#11 0x55e1599acfca service_manager::Main()
#12 0x55e159978791 content::ContentMain()
#13 0x55e15e014178 headless::(anonymous namespace)::RunContentMain()
#14 0x55e15e014205 headless::HeadlessBrowserMain()
#15 0x55e1599abca3 headless::HeadlessShellMain()
#16 0x55e1578e31ac ChromeMain
#17 0x7f4000b8ab97 __libc_start_main
#18 0x55e1578e302a _start
r8: 0000000000000000 r9: 00007ffc5b48ace0 r10: 0000000000000008 r11: 0000000000000246
r12: 00007ffc5b48af88 r13: 0000000000000047 r14: 00007ffc5b48b8e8 r15: 00007ffc5b48b8e0
di: 0000000000000002 si: 00007ffc5b48ace0 bp: 00007ffc5b48af30 bx: 00000233a2484b00
dx: 0000000000000000 ax: 0000000000000000 cx: 00007f4000ba7e97 sp: 00007ffc5b48ace0
ip: 00007f4000ba7e97 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
The puppeteer part of my program looks like this:
const fetchContracts = async (url) => {
const browser = await pupeteer.launch({ headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage(); // Create new instance of puppet
const pendingXHR = new PendingXHR(page);
await page.goto(url, { waitUntil: 'networkidle2' }); // Ensure no network requests are happening (in last 500ms).
await Promise.all([
page.click("#agree_statement"),
page.waitForNavigation()
]);
await page.click(".form-check-input");
await Promise.all([
page.click(".btn-primary"),
page.waitForNavigation()
]);
await pendingXHR.waitForAllXhrFinished();
await page.click('.sorting:nth-child(5)');
await pendingXHR.waitForAllXhrFinished();
await page.click('.sorting_asc');
await pendingXHR.waitForAllXhrFinished();
let html = await page.content();
await page.close();
return html;
}
Does anyone know what I am doing wrong? I have very little experience with stack traces and error logging. Thank you.
I forgot to quit out of the browser! I was quitting out of the page, but leaving the browser hanging, which was causing all sorts of memory problems on my server. Here's the PIDs on my server to prove what was going wrong.
After adding in await browser.close(); my code is working again!

Parse query stalls main thread for up to a minute

I'm using the Parse package from the asset store to save userdata for my Unity3D mobile game (iOS/Android). Now I've got the problem that the parse queries I make stall my unity mainthread for a long time. I was under the impression that the 'Task' concept of Parse was there to avoid that but somehow it doesn't seem to work. The stalling happens in the Editor as well, only a few seconds compared to up to a minute on mobile. The query.FindAsync().ContinueWith(t => {myContinuationBlock}); method returns immediately and subsequent calls get executed. The Unity3d main thread stalls a few seconds after the query is executed and immediately BEFORE the code in {myContinuationBlock} is executed.
I made a video of the problem. In the video you can also see that only Unity is being stalled, the (native) iAds on the bottom are not affected:
https://www.youtube.com/watch?v=XWaCGk9Hbus (the stall is from 0:07 - 1:07)
Here is my query code (note, this code runs through without problem. The stall happens later, right before the ContinueWith code gets executed):
public static void RetrieveHighScores()
{
DebugLog.Log ("start of RetrieveHighScores() method");
try
{
ParseQuery<ParseUser> query = ParseUser.Query
.WhereGreaterThan (_highScoreKey, 1)
.WhereGreaterThan("updatedAt", DateTime.Now - TimeSpan.FromDays(1))
.OrderByDescending(_score24HoursKey)
.Limit (1000);
DebugLog.Log ("query.FindAsync()");
query.FindAsync().ContinueWith(t =>
{
try
{
if (t.IsFaulted || t.IsCanceled)
{
DebugLog.Log("Retrieving 24 Hours High Scores Failed");
}
else
{
DebugLog.Log("Retrieving 24 Hours High Scores successful! ");
IEnumerable<ParseUser> results = t.Result;
foreach(ParseUser user in results)
{
//doing something with user..
}
DebugLog.Log ("24 Hours High Scores processed. "+_24HourHighScoreList.Count.ToString()+" entries.");
}
}
catch(System.Exception e)
{
DebugLog.Log("Failed to retrieve 24 Hours High Scores. Reason: " + e.Message);
}
});
DebugLog.Log ("FindAsync() returned");
}
catch (System.Exception e)
{
DebugLog.Log("Failed to retrieve 24 Hours High Scores. Reason: " + e.Message);
}
try
{
ParseQuery<ParseUser>query = ParseUser.Query
.WhereGreaterThan (_highScoreKey, 1)
.OrderByDescending(_highScoreKey)
.Limit (1000);
DebugLog.Log ("query.FindAsync()");
query.FindAsync().ContinueWith(t =>
{
DebugLog.Log("Retrieving Alltime High Scores successful! ");
IEnumerable<ParseUser> results = t.Result;
foreach(ParseUser user in results)
{
//doing something with user...
}
DebugLog.Log ("Alltime High Scores processed. "+_allTimeHighScoreList.Count.ToString()+" entries.");
});
DebugLog.Log ("FindAsync() returned");
}
catch (System.Exception e)
{
DebugLog.Log("Failed to retrieve alltime Highscores. Reason: " + e.Message);
}
DebugLog.Log ("end of RetrieveHighScores() method");
}
So, the very next thing I see in the console output after the stall is
"Retrieving Alltime High Scores successful! "
Now, I know that i'm querying 1000 objects here and yes there may be better ways for implementing highscores, but I don't understand why this code is stalling my Unity3D mainthread? Why does it stall sometimes for up to a minute and sometimes it's not noticable at all?
This is a serious problem as my game is released already. It started surfacing only once the user database grew bigger and now I need a quick fix for it.
The stalling does not happen if I don't call the RetrieveHighScores() function so it must be something happening after the parse code received the data from the server and passes it to ContinueWith code.
if I click pause in XCode during the stall, I see the following:
Thread 1, Queue : com.apple.main-thread
#0 0x017eaeb0 in GC_mark_from ()
#1 0x017eb520 in GC_mark_some ()
#2 0x017e5d1c in GC_stopped_mark ()
#3 0x017e6228 in GC_try_to_collect_inner ()
#4 0x017e64f0 in GC_collect_or_expand ()
#5 0x017e6a38 in GC_allocobj ()
#6 0x017e957c in GC_generic_malloc_inner ()
#7 0x017e965c in GC_generic_malloc ()
#8 0x017e9920 in GC_malloc_atomic ()
#9 0x01783814 in mono_array_new_specific ()
#10 0x00c5886c in m_wrapper_managed_to_native_object___icall_wrapper_mono_array_new_specific_intptr_int at /Users/me/myproj/build/device/Libraries/mscorlib.dll.s:187982
#11 0x009ee54c in m_System_Text_RegularExpressions_Interpreter_ResetGroups at /Users/me/myproj/build/device/Libraries/System.dll.s:6462
#12 0x009eb864 in m_System_Text_RegularExpressions_Interpreter_Reset at /Users/me/myproj/build/device/Libraries/System.dll.s:5761
#13 0x009edb6c in m_157 at /Users/me/myproj/build/device/Libraries/System.dll.s:6244
#14 0x009ebc54 in m_155 at /Users/me/myproj/build/device/Libraries/System.dll.s:5813
#15 0x009eb804 in m_System_Text_RegularExpressions_Interpreter_Scan_System_Text_RegularExpressions_Regex_string_int_int at /Users/me/myproj/build/device/Libraries/System.dll.s:5745
#16 0x009f3ce8 in m_System_Text_RegularExpressions_Regex_Match_string_int at /Users/me/myproj/build/device/Libraries/System.dll.s:9106
#17 0x00370204 in m_Parse_Internal_Json_Accept_string_int_System_Text_RegularExpressions_Regex_int__System_Text_RegularExpressions_Match_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3770
#18 0x0036fa80 in m_Parse_Internal_Json_ParseString_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3577
#19 0x0036f56c in m_Parse_Internal_Json_ParseMember_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3447
#20 0x0036f3b8 in m_Parse_Internal_Json_ParseObject_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3413
#21 0x0036f99c in m_Parse_Internal_Json_ParseValue_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3553
#22 0x0036f780 in m_Parse_Internal_Json_ParseArray_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3500
#23 0x0036f9b8 in m_Parse_Internal_Json_ParseValue_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3556
#24 0x0036f5ec in m_Parse_Internal_Json_ParseMember_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3457
#25 0x0036f3b8 in m_Parse_Internal_Json_ParseObject_string_int_int__object_ at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3413
#26 0x0036e920 in m_Parse_Internal_Json_Parse_string at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:3143
#27 0x00383168 in m_Parse_ParseClient_DeserializeJsonString_string at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:13121
#28 0x0038381c in m_Parse_ParseClient__c__DisplayClass8__RequestAsyncb__7_System_Threading_Tasks_Task_1_System_Tuple_2_System_Net_HttpStatusCode_string at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:13363
#29 0x0036de50 in m_Parse_Internal_InternalExtensions__c__DisplayClass1_2__OnSuccessb__0_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:2697
#30 0x0036e04c in m_Parse_Internal_InternalExtensions__c__DisplayClass7_1__OnSuccessb__6_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:2788
#31 0x003a3a4c in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5__ContinueWithb__2 ()
#32 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#33 0x003a39bc in m_System_Threading_Tasks_Task__c__DisplayClass3_1__ContinueWithb__1_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31474
#34 0x003a4140 in m_System_Threading_Tasks_Task_1_RunContinuations at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31766
#35 0x003a4278 in m_System_Threading_Tasks_Task_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31801
#36 0x003a4654 in m_System_Threading_Tasks_TaskCompletionSource_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31950
#37 0x003a4fa0 in m_3d9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:32334
#38 0x003a44b0 in m_System_Threading_Tasks_Task_1__c__DisplayClass1__ContinueWithb__0_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31872
#39 0x003a3b3c in m_System_Threading_Tasks_Task__c__DisplayClass8__ContinueWithb__7_System_Threading_Tasks_Task ()
#40 0x00519a84 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5_int__ContinueWithb__2 ()
#41 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#42 0x004a9548 in m_1ce9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:165091
#43 0x003a8dcc in m_System_Threading_Tasks_Task_ContinueWith_int_System_Func_2_System_Threading_Tasks_Task_int_System_Threading_CancellationToken at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:34526
#44 0x003a321c in m_System_Threading_Tasks_Task_ContinueWith_System_Action_1_System_Threading_Tasks_Task_System_Threading_CancellationToken at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31155
#45 0x003a3168 in m_System_Threading_Tasks_Task_ContinueWith_System_Action_1_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31129
#46 0x003a3fdc in m_System_Threading_Tasks_Task_1_ContinueWith_System_Action_1_System_Threading_Tasks_Task_1_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31721
#47 0x003a4ed4 in m_3d8 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:32304
#48 0x003a44b0 in m_System_Threading_Tasks_Task_1__c__DisplayClass1__ContinueWithb__0_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31872
#49 0x003a3b3c in m_System_Threading_Tasks_Task__c__DisplayClass8__ContinueWithb__7_System_Threading_Tasks_Task ()
#50 0x00519a84 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5_int__ContinueWithb__2 ()
#51 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#52 0x004a9548 in m_1ce9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:165091
#53 0x003a4140 in m_System_Threading_Tasks_Task_1_RunContinuations at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31766
#54 0x003a4278 in m_System_Threading_Tasks_Task_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31801
#55 0x003a4654 in m_System_Threading_Tasks_TaskCompletionSource_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31950
#56 0x003a3a60 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5__ContinueWithb__2 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31498
#57 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#58 0x003a39bc in m_System_Threading_Tasks_Task__c__DisplayClass3_1__ContinueWithb__1_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31474
#59 0x003a4140 in m_System_Threading_Tasks_Task_1_RunContinuations at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31766
#60 0x003a4278 in m_System_Threading_Tasks_Task_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31801
#61 0x003a4654 in m_System_Threading_Tasks_TaskCompletionSource_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31950
#62 0x003a4fa0 in m_3d9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:32334
#63 0x003a44b0 in m_System_Threading_Tasks_Task_1__c__DisplayClass1__ContinueWithb__0_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31872
#64 0x003a3b3c in m_System_Threading_Tasks_Task__c__DisplayClass8__ContinueWithb__7_System_Threading_Tasks_Task ()
#65 0x00519a84 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5_int__ContinueWithb__2 ()
#66 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#67 0x004a9548 in m_1ce9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:165091
#68 0x003a8dcc in m_System_Threading_Tasks_Task_ContinueWith_int_System_Func_2_System_Threading_Tasks_Task_int_System_Threading_CancellationToken at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:34526
#69 0x003a321c in m_System_Threading_Tasks_Task_ContinueWith_System_Action_1_System_Threading_Tasks_Task_System_Threading_CancellationToken at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31155
#70 0x003a3168 in m_System_Threading_Tasks_Task_ContinueWith_System_Action_1_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31129
#71 0x003a3fdc in m_System_Threading_Tasks_Task_1_ContinueWith_System_Action_1_System_Threading_Tasks_Task_1_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31721
#72 0x003a4ed4 in m_3d8 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:32304
#73 0x003a44b0 in m_System_Threading_Tasks_Task_1__c__DisplayClass1__ContinueWithb__0_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31872
#74 0x003a3b3c in m_System_Threading_Tasks_Task__c__DisplayClass8__ContinueWithb__7_System_Threading_Tasks_Task ()
#75 0x00519a84 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5_int__ContinueWithb__2 ()
#76 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#77 0x004a9548 in m_1ce9 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:165091
#78 0x003a4140 in m_System_Threading_Tasks_Task_1_RunContinuations at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31766
#79 0x003a4278 in m_System_Threading_Tasks_Task_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31801
#80 0x003a4654 in m_System_Threading_Tasks_TaskCompletionSource_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31950
#81 0x003a3a60 in m_System_Threading_Tasks_Task__c__DisplayClass3_1__c__DisplayClass5__ContinueWithb__2 at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31498
#82 0x003a36b8 in m_System_Threading_Tasks_Task___cctorb__23_System_Action at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31346
#83 0x003a39bc in m_System_Threading_Tasks_Task__c__DisplayClass3_1__ContinueWithb__1_System_Threading_Tasks_Task at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31474
#84 0x003a4140 in m_System_Threading_Tasks_Task_1_RunContinuations at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31766
#85 0x003a4278 in m_System_Threading_Tasks_Task_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31801
#86 0x003a4654 in m_System_Threading_Tasks_TaskCompletionSource_1_TrySetResult_T at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:31950
#87 0x003a0848 in m_Parse_PlatformHooks__c__DisplayClass2f__c__DisplayClass35__RequestAsyncb__2a_UnityEngine_WWW at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:29764
#88 0x003a0334 in m_Parse_PlatformHooks__c__DisplayClass20__RegisterNetworkRequestb__1f at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:29572
#89 0x003a0dbc in m_Parse_PlatformHooks__RunDispatcherd__39_MoveNext at /Users/me/myproj/build/device/Libraries/Parse.Unity.dll.s:29915
#90 0x0126ecec in scripting_method_invoke(ScriptingMethod*, MonoObject*, ScriptingArguments&, MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/Mono/ScriptingBackendApi_Mono.cpp:196
#91 0x01309390 in ScriptingInvocation::Invoke(MonoException**, bool) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:128
#92 0x0130935c in ScriptingInvocation::Invoke(MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:113
#93 0x01309308 in bool ScriptingInvocation::Invoke<bool>(MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:80
#94 0x012df7e4 in Coroutine::InvokeMoveNext(MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Mono/Coroutine.cpp:196
#95 0x012df57c in Coroutine::Run() at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Mono/Coroutine.cpp:221
#96 0x012df544 in Coroutine::ContinueCoroutine(Object*, void*) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Mono/Coroutine.cpp:78
#97 0x012593c4 in DelayedCallManager::Update(int) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/GameCode/CallDelayed.cpp:164
#98 0x012d0630 in PlayerLoop(bool, bool, IHookEvent*) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Misc/Player.cpp:1880
#99 0x01117878 in UnityPlayerLoop at /Applications/buildAgent/work/d63dfc6385190b60/PlatformDependent/iPhonePlayer/LibEntryPoint.mm:241
#100 0x00d2ff34 in -[UnityAppController(Rendering) repaint] at /Users/me/myproj/build/device/Classes/UnityAppController+Rendering.mm:55
It seems parse's JSON parsing runs on the mainthread, but why?
What's going on here and how can I avoid having the mainthread getting stalled?
//note: occasionally, the stalling does not happen (the query succeeds nevertheless) - as if Parse would sometimes successfully do the parsing on another thread, most of the time however do it on the mainthread.
I'd suggest that if you hook up the Unity profiler to your device, you're going to find that your Linq query is creating immense amounts of garbage - and it's the garbage collection on your device that is stalling your main thread.
Reimplement your leaderboard functionality the hard way and don't use Linq. Linq saves programmers time - not machines, don't use it in your games.

apache::thrift::server::TSimpleServer::serve glibc detected *** free(): invalid pointer

I am using thrift TSimpleServer, and get a core dump :
` (gdb) bt
#0 0x000000302af2e2ed in raise () from /lib64/tls/libc.so.6
#1 0x000000302af2fa3e in abort () from /lib64/tls/libc.so.6
#2 0x000000302af62db1 in __libc_message () from /lib64/tls/libc.so.6
#3 0x000000302af6888e in _int_free () from /lib64/tls/libc.so.6
#4 0x000000302af68bd6 in free () from /lib64/tls/libc.so.6
#5 0x000000302d3ae19e in operator delete(void*) () from /usr/lib64/libstdc++.so.6
#6 0x0000000000443d8a in checked_array_delete<uint8_t> (this=0xb551f0, __in_chrg=<value optimized out>) at /home/work/compile_meta/inf/budw/meta.bak/lib/thrift-0.8.0/../../../../../third-64/boost/include/boost/checked_delete.hpp:41
#7 0x0000000000443d8a in ~scoped_array (this=0xb551f0, __in_chrg=<value optimized out>)
#8 0x0000000000443d8a in apache::thrift::transport::TBufferedTransport::~TBufferedTransport (this=0xb551f0, __in_chrg=<value optimized out>)
#9 0x000000000042077d in ~shared_count (this=0xb56760, __in_chrg=<value optimized out>) at ../../../../third-64/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
#10 0x000000000042077d in ~shared_ptr (this=0xb56760, __in_chrg=<value optimized out>)
#11 0x000000000042077d in ~TProtocol (this=0xb56760, __in_chrg=<value optimized out>)
#12 0x000000000042077d in ~TProtocolDefaults (this=0xb56760, __in_chrg=<value optimized out>)
#13 0x000000000042077d in ~TVirtualProtocol (this=0xb56760, __in_chrg=<value optimized out>)
#14 0x000000000042077d in apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::~TBinaryProtocolT (this=0xb56760, __in_chrg=<value optimized out>)
#15 0x0000000000445ab9 in operator= (this=0xa259e0) at /home/work/compile_meta/inf/budw/meta.bak/lib/thrift-0.8.0/../../../../../third-64/boost/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
#16 0x0000000000445ab9 in apache::thrift::server::TSimpleServer::serve (this=0xa259e0)
#17 0x000000000041ac94 in uap::meta::MetaServiceManager::thread_func (arg=0x2cfd) at server/meta_service_manager.cpp:177
#18 0x000000302b80610a in start_thread () from /lib64/tls/libpthread.so.0
#19 0x000000302afc6003 in clone () from /lib64/tls/libc.so.6
#20 0x0000000000000000 in ?? ()`
i am attaching so remotely via thrift, after attach a1.so a2.so then detach a1.so a2.so , when detach more a1.so which does not exist, it core dump as this, but when we attach a1.so detach a1.so detach a1.so , it works well
any clue for this issue or how could i debug since i have add try-catch to this serv func, but no exception throw out, thanks

Resources