Pepper robot goes charging successfully and leaves it successfully but after that it will not go charging again - robot

So I got Pepper robot charging working smoothly for 1 interval. I did it by creating a loop of calling out goToStation() until it returns 0. Before it i deactivated the topic and also paused awarness with pauseAwareness();
When it went successfully to station i activated dialog topic again and then resumed awareness. All the other features worked well after that. Then i called Pepper to leave the station and it did successfully. Now when i want pepper to go to the charging station again it will just deactivate the topic, pause awareness but will not go to station.
Logs end here for unsuccessful going back to charging
[WARN ] audio.NuanceVoconEngine :xLhNmspConnectionEventCallback:0 Nuance Remote: Connection Failed.
[INFO ] audio.NuanceVoconEngine :xLhNmspConnectionEventCallback:0 eventType: 1 eventValue: 5 reason: 10 sessionId: <null> message: Disconnected.
[INFO ] Dialog :connectionChanged:0 Connection changed: 0
[WARN ] ConditionChecker :onEvent:0 Event queue is empty!
enter code here
In the first attempt of charging that goes successfull logs look like this after that.
[INFO ] audio.NuanceVoconEngine :xLhNmspConnectionEventCallback:0 Nuance Remote: Connection Established.
[INFO ] Dialog :connectionChanged:0 Connection changed: 1
[INFO ] audio.NuanceVoconEngine :xLhNmspConnectionEventCallback:0 eventType: 3 eventValue: 1 reason: 10 sessionId: db6dafbe-65d4-4348-8420-e772560e9fce message: <null>
...... (these logs continiue with alrecharge manager doing the job)
What could be the cause of it working the first time using it and then next time it will just not work?

Related

Jitsi Videobridge participants lose connection

I have a pretty stock installation with authentication. The installation is only used for 1 to many broadcasting. 1 person shares their screen, everyone starts muted & hidden, follows that 1 person.
I have adaptive last n = true, channel last n = 1.
The screenshares begin to fail after a few minutes. The screen goes gray for participants. The broadcasting user has about an upload of 500kbps in the screenshare but everyone has a download of 11kbps or N/A.
I see this in the jvb logs intermittently
JVB 2017-01-24 14:17:56.506 INFO: [278] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 158.69.116.11:10000/udp/host -> 108.208.24.154:58802/udp/prflx (stream.RTP), failing.
JVB 2017-01-24 12:33:51.337 INFO: [77] org.ice4j.ice.harvest.AbstractTcpListener.readFromChannel() Failed to handle TCP socket Socket[addr=/108.208.24.154,port=60215,localport=4443]: End of stream! JVB 2017-01-24 12:33:51.367 INFO: [507] org.ice4j.ice.ConnectivityCheckServer.log() Failed to send BINDING-RESPONSE(0x101)[attrib.count=5 len=96 tranID=0x776264674249706335757139] through [2607:5300:60:850b:0:0:0:0]:10000/udp java.io.IOException: Network is unreachable (sendto failed) at java.net.PlainDatagramSocketImpl.send(Native Method) at java.net.DatagramSocket.send(DatagramSocket.java:693) at org.ice4j.ice.harvest.AbstractUdpListener$MySocket.send(AbstractUdpListener.java:613) at org.ice4j.socket.DelegatingDatagramSocket.send(DelegatingDatagramSocket.java:767) at org.ice4j.socket.DelegatingDatagramSocket.send(DelegatingDatagramSocket.java:767) at org.ice4j.socket.IceUdpSocketWrapper.send(IceUdpSocketWrapper.java:53) at org.ice4j.stack.Connector.sendMessage(Connector.java:327) at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:629) at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:575) at org.ice4j.stack.StunServerTransaction.retransmitResponse(StunServerTransaction.java:201) at org.ice4j.stack.StunServerTransaction.sendResponse(StunServerTransaction.java:178) at org.ice4j.stack.StunStack.sendResponse(StunStack.java:771) at org.ice4j.ice.ConnectivityCheckServer.processRequest(ConnectivityCheckServer.java:210) at org.ice4j.stack.EventDispatcher$RequestListenerMessageEventHandler.handleMessageEvent(EventDispatcher.java:511) at org.ice4j.stack.EventDispatcher.fireMessageEvent(EventDispatcher.java:268) at org.ice4j.stack.StunStack.handleMessageEvent(StunStack.java:987) at org.ice4j.stack.MessageProcessor.run(MessageProcessor.java:171) at java.lang.Thread.run(Thread.java:745) JVB 2017-01-24 12:33:51.367 INFO: [507] org.ice4j.stack.StunStack.handleMessageEvent() Received an invalid request. java.lang.RuntimeException: Failed to send a response at org.ice4j.ice.ConnectivityCheckServer.processRequest(ConnectivityCheckServer.java:222) at org.ice4j.stack.EventDispatcher$RequestListenerMessageEventHandler.handleMessageEvent(EventDispatcher.java:511) at org.ice4j.stack.EventDispatcher.fireMessageEvent(EventDispatcher.java:268) at org.ice4j.stack.StunStack.handleMessageEvent(StunStack.java:987) at org.ice4j.stack.MessageProcessor.run(MessageProcessor.java:171) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.IOException: Network is unreachable (sendto failed) at java.net.PlainDatagramSocketImpl.send(Native Method) at java.net.DatagramSocket.send(DatagramSocket.java:693) at org.ice4j.ice.harvest.AbstractUdpListener$MySocket.send(AbstractUdpListener.java:613) at org.ice4j.socket.DelegatingDatagramSocket.send(DelegatingDatagramSocket.java:767) at org.ice4j.socket.DelegatingDatagramSocket.send(DelegatingDatagramSocket.java:767) at org.ice4j.socket.IceUdpSocketWrapper.send(IceUdpSocketWrapper.java:53) at org.ice4j.stack.Connector.sendMessage(Connector.java:327) at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:629) at org.ice4j.stack.NetAccessManager.sendMessage(NetAccessManager.java:575) at org.ice4j.stack.StunServerTransaction.retransmitResponse(StunServerTransaction.java:201) at org.ice4j.stack.StunServerTransaction.sendResponse(StunServerTransaction.java:178) at org.ice4j.stack.StunStack.sendResponse(StunStack.java:771) at org.ice4j.ice.ConnectivityCheckServer.processRequest(ConnectivityCheckServer.java:210)
I set org.jitsi.videobridge.ratecontrol.VideoChannelLastNAdaptor.MAX_STAY_AT_ZERO_MS=5000 in videobridge sip-properties to force the retry after 5 seconds.
The console logs from inspecting chrome in the frozen participants shows: Logger.js:125 [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: null Script: null Line: null Column: null StackTrace: Error: Ping timeout at strophe.ping.js:102 at u.TimedHandler.handler (strophe.js:2752) at u.TimedHandler.run (strophe.js:2095) at u.Connection._onIdle (strophe.js:3706) r # Logger.js:125
What is the optimal config for this type of conference (screenshare 1 send to many receive)?
I'm honestly not sure why the video drops for some people and doesn't reconnect. Can anyone lend a helping hand?
How many viewers do you have? Note that adaptive last N is gone (as an option) it just behaves that way all the time now.
You could try to use meet.jit.si and set that everyone starts muted and hidden by the moderator just to check that it's not an infrastructure problem. Alternatively, this scenario is the perfect one for YouTube broadcasting: you can have the broadcaster(s) join the room and stream it to YouTube, where all viewers can watch it live.
You can also set users to be muted (and also prevent audio and video transmission) when a conference gets started (except the moderator who is presenting) by changing the code inside Jicofo.
This is the method name to permanently disable a user from sending video or audio:
public boolean muteParticipant(ColibriConferenceIQ channelsInfo, boolean mute, MediaType mediaType)

Why is this monit config reminder syntax not resulting in repeated alerts?

I have setup a monit config to check that a jenkins build node is connected (its VPN connection is still up) by checking for its VPN IP address on a server that is inside the network already. It seems to work at least once when the computer is not connected. But it only seems to trigger once in a blue moon and not repeatedly like I want it to.
check host JenkinsMacOSXNode with address 192.168.237.10
if failed icmp type echo
count 5 with timeout 5 seconds
2 times within 3 cycles
then alert with reminder on 3 cycles
alert admin#ourdomain.com
Is the above syntax correct for having an alert sent repeatedly when an expected computer is not pingable?
In case the next question is how often is the cycle set to, the /etc/monit/monitrc indicates set daemon 120 so each cycle should be every 2 minutes
Is there a better way to accomplish checking for a computer that should be connected via VPN to the network and alert if it is not?
Try setting the alert with reminder definition before the test:
set alert admin#ourdomain.com with reminder on 3 cycles
check host JenkinsMacOSXNode with address 192.168.237.10
if failed icmp type echo
count 5 with timeout 5 seconds
2 times within 3 cycles
then alert

create a mass of connections on client side by twisted

I use twisted to do a test job for a server. I need create a lot of connections connect to the server. This is my code:
class Account(Protocol):
def connectionMade(self):
print "connection made"
def connectionLost(self, reason):
print "connection Lost. reason: ", reason
def createAccount(self, name):
self.transport.write(...)
print "create account: ", name
class AccountFactory(Factory):
def buildProtocol(self, addr):
return Account()
def accountCreate(p, i):
print "begin create"
p.createAccount(NAME_PREFIX+str(i))
def onError(err):
return 'error: ', err
c = 0
while c < 100:
accountPoint = TCP4ClientEndpoint(reactor, server_ip, port)
accountConn = accountPoint.connect(AccountFactory())
accountConn.addCallback(accountCreate, c)
accountConn.addErrback(onError)
c += 1
reactor.run()
If server and client located in same LAN, there is no problem, all of 100 "create account: xxx" will printed. But when I put server on a remote address(internet), the client only prints near 50% number of "create account: xxx". onError doesn't fire.
The log is:
2014-07-29 15:57:06+0800 [Uninitialized] connection made
2014-07-29 15:57:06+0800 [Uninitialized] begin create
2014-07-29 15:57:06+0800 [Uninitialized] create account: xxx
repeat 60 times
2014-07-29 15:57:17+0800 [Uninitialized] Stopping factory <__main__.AccountFactory instance at xxx>
repeat 40 times
Some callback failed to be calling, even the connection haven't be made. The only different is the latency between server and client.
The most interested thing is the duration between first success log and first "Stopping factory" log is exactly 20 seconds(I try this many times). But I am sure this is not caused by timeout because TCP4ClientEndpoint default timeout is 30 seconds.
And the log time stamp is also abnormal, the log time stamp is in bundle, for example: 10 logs are 2014-07-29 17:25:09, 20 logs are 2014-07-29 17:25:15. If the connection made in async manner, the time stamp should be random enough. It should not gather together: made 10 connections at time point a, made another 20 at time point a+15sec. Or log utility problem?
Revised:
I think this is bug of twisted. The reason of "Stopping" is timeout. When I run this in linux, the time duration between first log and first stopping is timeout seconds I passed into TCP4ClientEndpoint, but under windows whatever I set the timeout seconds, the duration always 21 seconds. I use socket(blocking) to do same thing instead, all is pretty good. So this should be a bug in twisted which involve timeout when making a lot of connections.
You haven't added any error handlers to your code, nor have you enabled logging so that unhandled errors will be reported anywhere.
Enable logging, either by calling twisted.python.log.startLogging or by writing your code as an ISeviceMaker plugin and running it with twistd.
And add errbacks to each Deferred in your application so you can handle failures from their associate operations.

Google Cloud Messaging dont return Canonical ID

I have deliberately registered my app several times to GCM to test the canonical id concept, but the cloud doesnt return it to me. See my server log below, its the same device and I can see in the Android log that it received the message four times. But I never get a canonical id in return from Google, what is it I misunderstand?
[INFO com.bipper.filters.PushUpdatesFilter] method: POST childId: 13 has pending updates: true url: /mybipperapi/do/parents/1/children/13/usagelimits
[INFO com.bipper.services.gcm.GcmSenderService] registrationId: APA91bHQIWguRXvpVrg7Xh1nOsUqqbephClS9KkuuFf0eg3fkfgjkmvi1o-0WaSwWWdWwqXw9e3X80OsZwdINr1ufBjEXQJ5om48lL6q8bH3Vrlaf5U11FbyzQdVvzGy-3QBqahc_nMh9FeiL2sBzU0KPGG3y9xtYg
[INFO com.bipper.services.gcm.GcmSenderService] Sent message to one device: [ messageId=0:1349650679774901%d3cfcce76e2555b5 ]
[INFO com.bipper.services.gcm.GcmSenderService] registrationId: APA91bE9Vl_qijVdpFTqlJXA2OHyaF2cjKaCi8ZvNrD5r2woNs_TSuJgVuxn7RIF3pef6vdtd2MMV1TrWnusbGPXy4uWT4KJBhuAoAYgCjbXJduv-oz13_xICIKYOZTAFH2OpuC8E1Hw65KN6N4QukxG0W4Zor8jSg
[INFO com.bipper.services.gcm.GcmSenderService] Sent message to one device: [ messageId=0:1349650679857971%d3cfcce76e2555b5 ]
[INFO com.bipper.services.gcm.GcmSenderService] registrationId: APA91bEzQag9HBPbrR0wtaSuR3HA5NV795ZuDzxwQJVnQfc2r1lDv0gUXxc6GikUJDWMiUSge-b0BS1Tz2yIr8flpBqmAdpgQnatvP19PVm9zd8PopE51T-NJkfqqX65oPfKkx93Os7qS8_-IokjbyNIOK5FDCsrAQ
[INFO com.bipper.services.gcm.GcmSenderService] Sent message to one device: [ messageId=0:1349650679940798%d3cfcce76e2555b5 ]
[INFO com.bipper.services.gcm.GcmSenderService] registrationId: APA91bG_nVU-8VM9JSbTlxjAuseJ4LZG75BOoP5kd85garpcW698w4uwGWCy3dkUt3pXiXWhAV-KLPuEr-vw4_yARwjma2U46KXjmEoBwkTaVNi9t5M4sKRtqaKGZTcsaoa_Ng4EenVw41QFTi2At75946WR3Qu7jQ
[INFO com.bipper.services.gcm.GcmSenderService] Sent message to one device: [ messageId=0:1349650680044947%d3cfcce76e2555b5 ]
[WARN com.bipper.filters.PushUpdatesFilter] results has size 4, this is fishy
[INFO com.bipper.filters.PushUpdatesFilter] [ messageId=0:1349650679774901%d3cfcce76e2555b5 ]
[INFO com.bipper.filters.PushUpdatesFilter] [ messageId=0:1349650679857971%d3cfcce76e2555b5 ]
[INFO com.bipper.filters.PushUpdatesFilter] [ messageId=0:1349650679940798%d3cfcce76e2555b5 ]
[INFO com.bipper.filters.PushUpdatesFilter] [ messageId=0:1349650680044947%d3cfcce76e2555b5 ]
The documentation(link) says:
Canonical IDs
On the server side, as long as the application is behaving well,
everything should work normally. However, if a bug in the application
triggers multiple registrations for the same device, it can be hard to
reconcile state and you might end up with duplicate messages.
GCM provides a facility called "canonical registration IDs" to easily
recover from these situations. A canonical registration ID is defined
to be the ID of the last registration requested by your application.
This is the ID that the server should use when sending messages to the
device.
If later on you try to send a message using a different registration
ID, GCM will process the request as usual, but it will include the
canonical registration ID in the registration_id field of the
response. Make sure to replace the registration ID stored in your
server with this canonical ID, as eventually the ID you're using will
stop working.
When you parse the results from GCM, you have to manually check if it returns you a canonicalId.
String canonicalRegId = result.getCanonicalRegistrationId();
You then have to make sure this new id is used to push to the device.
As per Google docs,
When a plain-text request is successful (HTTP status code 200), the
response body contains 1 or 2 lines in the form of key/value pairs.
The first line is always available and its content is either id=ID of
sent message or Error=GCM error code. The second line, if available,
has the format of registration_id=canonical ID. The second line(containing canonical id) is
optional, and it can only be sent if the first line is not an error.
If there is a canonical id present, pgratton is right, you will have to parse the result and get it using result.getCanonicalRegistrationId();
Even after receiving a success response after pushing, canonical id can be null. In most cases, it will be null which means the token with which you pushed is OK and there is no need to replace it. When there is a change in the token (eg. in the case where Google refreshes the tokens) and if we still push with our old token, i guess you would then receive the canonical id in your response with which you must replace the old token.
If your push returns a failure response also, canonical id won't be present in the response.

IIS 6 Error Message

I have Warning message in my IIS 6 Viewer.How to solve this problem?
Event Type: Warning
Event Source: ASP.NET 2.0.50727.0
Event Category: Web Event
Event ID: 1309
Date: 11/3/2009
Time: 8:18:20 AM
User: N/A
Computer: PEB-BL05
Description:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 11/3/2009 8:18:20 AM
Event time (UTC): 11/3/2009 1:18:20 AM
Event ID: 6d12e7ec9a314fd59153efb83329b5c3
Event sequence: 236
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1950175433/Root/myApp
Trust level: Full
Application Virtual Path: /attga
Application Path: C:\Inetpub\wwwroot\myApp\
Machine name: MyComMachine
Process information:
Process ID: 4528
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: RowNotInTableException
Exception message: This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row.
Yes, more info is really needed. On the surface it looks like you have a page that is manipulating a table and it encountered an error that was not handled, so IIS reset the worker process (handled your exception for you). Hwo do you troubleshoot? There are a number of ways, but the one I am most familiar with and use most frequently is to attach the debugger (cdb or windbg), set a BP on the exception that is occuring and then wait. You can then use the debugger to determine the page that is failing and anything more you want. To learn more about this process I'd recommend a book by John Robbins:
http://www.amazon.com/Debugging-Applications-Microsoft%C2%AE-Microsoft-Pro-Developer/dp/0735615365
This is an application error caused by what ever is running in the "myApp" folder.
Take a look at whats in there and then come back.