AWS IoT reboot Job never executes - Forever queued - aws-iot

I might be confused about how this is supposed to work, but I setup a device as a Greengrass Core v2 device and created a reboot job from the managed AWS-Reboot template and it never executes on the device.
The goal of this is just a proof of concept before I delve much deeper creating my own jobs like pulling new versions of our software.
Details:
Job type is "Snapshot".
Device is running Ubuntu 18.04
Java: OpenJDK 16.0.2

In case someone else runs into my post.
Greengrass doesn't support Managed Templates for IoT Jobs. They're for AWS IoT Device Client: https://repost.aws/questions/QUMwi9PxDcRT6xu1jEQEfj8g

Related

windows 10 iot - salvage app package from device

Allthough loooking carefully to select to proper drive to create a new iot device, I erroneously selected by micro sd with my source code. Stupid me!
However I have the app still on another running device. Is their a way to copy my app package from the raspberry back to my devbox?

How to See Log or Sysout in Flink Standalone

I run my application in Flink standalone, but can't find it's sysout in console or FLINK_HOME/log.
Does anyone know where I can see my application debug log? And how to know which TMs my application run on?
When running a Flink application in standalone mode on a cluster, everything that is logged to system out or system err goes into the respective local log/ directories.
So for getting the logs, you have to connect (for example using SSH) to the machines running TaskManagers and retrieve the logs from there.
And how to know which TMs my application run on.
The JobManager web interface (running on host:8081 by default) shows where the tasks are deployed to.
When the parallelism == number of slots, the tasks usually run on all machines.

Apache stops processing requests (mod_wsgi?)

At some point my site, running on Apache2 with mod_wsgi just stops processing requests. The connection to server is maintained and client waits for responce, but it never is returned by apache. The server at this time is at 0% CPU, and nothing is processing. I think, apache just sends request to queue and never gets them out of there.
When I perform apache2ctl graceful the problem does not resolve. Only after apache2ctl restart.
My site is a 4 instance wsgi application of Pyramid and 2 instances of Zope 3. It is running normaly and does not have speed problems, that I am aware of.
versions:
Ubuntu 10.04
apache2 2.2.14-5ubuntu8.9
libapache2-mod-wsgi 2.8-2ubuntu1
Sounds like you are using embedded mode to run the multiple applications and you are using third party C extensions that have problems in sub interpreters, resulting in potential deadlock. Else your code is internally deadlocking or blocking on external services and never returning, causing exhaustion of available processes/threads.
For a start, you should look at using daemon mode and delegate each web application to a distinct daemon process group and then forcing each to run in the main interpreter.
See:
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_To_Daemon_Process
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API
Otherwise use debugging tips described in:
http://code.google.com/p/modwsgi/wiki/DebuggingTechniques
for getting stack traces about what application is doing.

How to write DD-WRT C app?

I want to write a small proxy as a user-level program for the DD-WRT environment.
The proxy will read/write between a USB HID device (Arduino) attached to the DD-WRT box and a specific web server. The USB device will use an AT-style code. The web server uses HTTP.
I'm new to the DD-WRT environment.
Pointers to useful sample apps, GIT repos, blog posts, etc would be appreciated. Anything about getting started writing a DD-WRT app.
Googling has not been successful.
More Googling and reading has led me to:
Apparently, OpenWRT packages can be loaded onto DD-WRT systems. "Note that you can install any OpenWRT package, using ipkg." -- from a DD-WRT page
An intro to writing an OpenWRT package.
http://www.dd-wrt.com/wiki/index.php/Development
If you want to write a kernel module for DD-WRT, this seems like a good start.
DD-WRT has packages for many useful things. Python and pyserial struck my attention.
It is trivially easy to write a HTTP server in python. It is equally easy to interface with a serial port in python.
Load kernel drivers for the USB serial emulator chip on your Arduino (mine has a FTDI chip). It will manifest itself as /dev/ttyUSB0 or something. Do everything else in python.

JDBC connection hanging

One of our customers has a newish problem: the application grinds to halt. Thread dump shows that all threads are hanging on network IO in JDBC calls.
We/I have never seen these 'network IO' hangs. Typically a slow machine w/ DB problems has either a) one or two long-running queries or b) some type of lock/deadlock. In either of these cases the threads 'hang' on different methods. I have never seen all 30+ threads hanging on network IO.
Below I have included an excerpt from the thread dump. All HTTP threads are hanging on the same java.net.SocketInputStream.read call.
I talked to their dba and sysadmin. According to them 'nothing has changed' in the environment recently which would cause this problem.
db environment
MSSQL 2005 64-bit Service Pack 2
Driver: sqljdbc.jar : 1.0 809 102
Note: they are running an older jdbc driver. AFAIK they tried upgrading from 1.0 to the 1.2 driver but had some other problem.
other environment issues
They're running both the app server and the db server in VMWare VM's. I don't know how this setup affects network performance.
Apparently this is the only application with this problem. I don't know anything else about their network architecture.
Questions
* any insights on this problem?
* if it is network, any next steps for analyzing?
Appendix A: Excerpt from Thread dump
All HTTP connections are hanging on the same method:
"TP-Processor31" daemon prio=5 tid=0x04085b78 nid=0x970 runnable [0x0764d000..0x0764fd6c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source)
- locked (a com.microsoft.sqlserver.jdbc.DBComms)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
We've had similar issues, and traced them back to a buggy JDK update (1.6.29).
We downloaded 1.6.27 (http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u27-oth-JPR), re-set the JAVA_HOME environment and we were back on track.
It is the changes to JSSE in version 1.6 u29. The change is to partially patch CVE-2011-3389 and CVE-2011-3560.
If are not deploying applets and using java web-start. You might be able to just use the 1.6 u27 jsse.jar. You're still going to have the vulnerability, but it will allow the sqljdbc.jar and sqljdbc4.jar to work.
The other options to migrate to Java 7, the sqljdbc4.jar does work in that environment.
The patch is not complete fix. So expect more changes in future patches.

Resources