<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I think perhaps the best is to add an overall timer, launched just before the tcp_connect, and cancelled in all the known exit paths. Then that timer (perhaps 60 seconds) could cleanup the push. At least that would avoid the whole system jamming up.<div class=""><br class=""></div><div class="">But that doesn’t solve the core problem of why you can’t connect to apple (but I can). Your tcp connection state is “UNCONN”, which means the disconnected, I assume.</div><div class=""><br class=""></div><div class="">I think there is an AnyEvent debug setting, but that is likely to produce a lot of verbose output on a production server.</div><div class=""><br class=""></div><div class="">Regards, Mark,<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 15 Dec 2020, at 4:20 AM, Michael Balzer <<a href="mailto:dexter@expeedo.de" class="">dexter@expeedo.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="content-isolator__container"><div class="protected-part"><div class="protected-title">Signed PGP part</div><div class="protected-content">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div class="">
The certificates are those you sent me. Just checked, they're both
valid.<br class="">
<br class="">
I've added your suggestion and also added the "connected" log
message from PushAPNS.pm, no luck.<br class="">
<br class="">
<font face="monospace" class="">2020-12-14 13:52:00.840238 +0100 info main:
- - XXXXXXXX msg queued apns notification for
sandbox:XXXXXXXXXXXXXX<br class="">
2020-12-14 13:52:01.579649 +0100 info main: - - - msg apns
processing queue for <a href="http://gateway.sandbox.push.apple.com" class="">gateway.sandbox.push.apple.com</a><br class="">
2020-12-14 13:52:01.740147 +0100 info main: - - - msg apns
connected to <a href="http://gateway.sandbox.push.apple.com" class="">gateway.sandbox.push.apple.com</a>, now establishing SSL
security<br class="">
</font><br class="">
I tried reducing the APNS channels to "production", still no luck.<br class="">
<br class="">
I can see the socket getting created when following socket events:<br class="">
<br class="">
<font face="monospace" class="">[root@ns34 ~]# ss -E | grep "17\.188"<br class="">
tcp UNCONN 0 0 146.0.237.226:59102
17.188.136.189:2195<br class="">
</font><br class="">
So the TLS init somehow fails in a way AnyEvent::Handle doesn't
recognize as a failure / error.<br class="">
<br class="">
I've had a look at the AnyEvent::Handle documentation but cannot see
anything we're doing wrong or missed regarding error handling.<br class="">
<br class="">
Maybe Apple is blocking me, dropping all packets? But wouldn't that
trigger a timeout or TLS init error?<br class="">
<br class="">
Very strange. Any other ideas?<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">Am 14.12.20 um 09:19 schrieb Mark
Webb-Johnson:<br class="">
</div>
<blockquote type="cite" cite="mid:9EAE2052-E79A-4A36-87C3-29FAE4A3D847@webb-johnson.net" class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
Do you have conf/ovms_apns_sandbox.pem file in place? Valid and
not expired?
<div class=""><br class="">
</div>
<div class="">I had a quick review, and it seems the main flow
handles errors. Perhaps some other callback on the
AnyEvent::Handle for an error condition is being missed? Or
perhaps the AnyEvent::Handle could not be created at all. Can
you try to add:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding:
0px;" class="">
<div class="">If (!defined $apns_handle)</div>
<div class=""> {</div>
<div class=""> AE::log error => "- - - msg apns handle could
not be created”;</div>
<div class=""> $apns_running = 0;</div>
<div class=""> }</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">After the block of ‘$apns_handle = new AnyEvent::Handle(…’?</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 14 Dec 2020, at 3:21 PM, Michael Balzer
<<a href="mailto:dexter@expeedo.de" class="" moz-do-not-send="true">dexter@expeedo.de</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="content-isolator__container">
<div class="protected-part">
<div class="protected-title">Signed PGP part</div>
<div class="protected-content">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div class=""> That's the strange part: I don't get
any error, and I don't get a timeout either.
That's what I meant by "fails in a way we don't
handle".<br class="">
<br class="">
This is the only log entry on "apns processing", I
get this once after restarting the server as soon
as the first APN is due for delivery:<br class="">
<font class="" face="monospace"><br class="">
2020-12-10 16:55:30.351530 +0100 info main: - -
- msg apns processing queue for <a href="http://gateway.sandbox.push.apple.com/" class="" moz-do-not-send="true">gateway.sandbox.push.apple.com</a></font><br class="">
<br class="">
(still running server v2 due to lack of time)<br class="">
<br class="">
After that, no more apns processing – I guess
because $apns_running never gets reset.<br class="">
<br class="">
Any idea?<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">Am 14.12.20 um 07:17
schrieb Mark Webb-Johnson:<br class="">
</div>
<blockquote type="cite" cite="mid:FFACA9C0-DE7C-45A2-BD55-E6B8B0E40462@webb-johnson.net" class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div class=""><br class="">
</div>
Push notifications are still working ok for me.
What is the error you get back from the gateway?
<div class=""><br class="">
</div>
<div class="">We are using this protocol (see
apns_send function):</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border:
none; padding: 0px;" class="">
<div class=""><a href="https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/BinaryProviderAPI.html" class="" moz-do-not-send="true">https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/BinaryProviderAPI.html</a></div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">We need to convert to this one:</div>
<div class=""><br class="">
</div>
</div>
<blockquote style="margin: 0 0 0 40px; border:
none; padding: 0px;" class="">
<div class="">
<div class=""><a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/" class="" moz-do-not-send="true">https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/</a></div>
</div>
</blockquote>
<div class="">
<div class="">
<div class=""><br class="">
</div>
<div class="">But have until the end of
March 2021 to do it. The switch is not
complex, and is probably slightly easier
for us. It becomes just a simple http
request, with pretty much the same payload
we currently use (in json format).</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 11 Dec 2020, at 12:27
AM, Michael Balzer <<a href="mailto:dexter@expeedo.de" class="" moz-do-not-send="true">dexter@expeedo.de</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">
<div class="content-isolator__container">
<div class="protected-part">
<div class="protected-title">Signed
PGP part</div>
<div class="protected-content">Mark,<br class="">
<br class="">
a user informed me he no
longer gets any push
notifications to iOS.<br class="">
<br class="">
Looking into the logs, it
seems the initial connect to
the gateway fails in a way the
perl code does not handle.<br class="">
<br class="">
I've found this in the Apple
forums: <a href="https://developer.apple.com/forums/thread/667248" class="" moz-do-not-send="true">https://developer.apple.com/forums/thread/667248</a><br class="">
<br class="">
It seems the protocol we use
has been deprecated, but it
should continue to work until
March. Do you see a similar
effect on your server?<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
-- <br class="">
Michael Balzer * Helkenberger
Weg 9 * D-58256 Ennepetal<br class="">
Fon 02333 / 833 5735 * Handy
0176 / 206 989 26<br class="">
<br class="">
<br class="">
</div>
</div>
<br class="">
<iframe class="content-isolator__isolated-content" sandbox="allow-scripts" scrolling="auto" style="border:none;display:block;overflow:auto;" data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg==" width="200" height="10"></iframe></div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br class="">
<pre class="moz-signature" cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
</div>
</div>
<br class="">
<iframe class="content-isolator__isolated-content" sandbox="allow-scripts" scrolling="auto" style="border:none;display:block;overflow:auto;" data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg==" width="200" height="10"></iframe></div>
</div>
</blockquote>
</div>
<br class="">
</div>
<br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br class="">
<pre class="moz-signature" cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
</div></div><br class=""><iframe class="content-isolator__isolated-content" sandbox="allow-scripts" scrolling="auto" width="200" height="10" style="border:none;display:block;overflow:auto;" data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg=="></iframe></div></div></blockquote></div><br class=""></div></body></html>