Hi all, we have experienced similar problem starting from september 21.
In that case we had a setup with pushy 0.13.10 and we also called get() on PushNotificationFuture (without specify a timeout) and the application hanged: from the jvm dump we see that threads were waiting on DefaultPromise.await().
After that we upgraded to Pushy 0.14.1 and Netty 4.1.52.Final, and also added a timeout of 10 seconds in get method.
Now we see some threads sometimes reaching the timeout condition, and exit the get method.
- having a trace, we see that the response from Apple is different in length than the others where the thread got the timeout after 10 sec:
16:49:17.792914 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 815271:815862, ack 128037, win 32848, options [nop,nop,TS val 1606204565 ecr 3349113116], length 591
16:49:17.894623 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128037:128079, ack 815271, win 1452, options [nop,nop,TS val 3349113323 ecr 1606204565], length 42
16:49:17.954627 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128079:128157, ack 815862, win 1452, options [nop,nop,TS val 3349113383 ecr 1606204565], length 78
16:49:18.095096 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [.], ack 128157, win 32848, options [nop,nop,TS val 1606204566 ecr 3349113323], length 0
16:49:21.539622 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 815862:816465, ack 128157, win 32848, options [nop,nop,TS val 1606204572 ecr 3349113323], length 603
16:49:21.701444 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128157:128235, ack 816465, win 1452, options [nop,nop,TS val 3349117129 ecr 1606204572], length 78
16:49:21.815076 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [.], ack 128235, win 32848, options [nop,nop,TS val 1606204573 ecr 3349117129], length 0
16:49:21.828051 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 816465:817054, ack 128235, win 32848, options [nop,nop,TS val 1606204573 ecr 3349117129], length 589
16:49:21.989825 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128235:128313, ack 817054, win 1452, options [nop,nop,TS val 3349117418 ecr 1606204573], length 78
16:49:22.025028 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [.], ack 128313, win 32848, options [nop,nop,TS val 1606204573 ecr 3349117418], length 0
16:49:23.865899 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 817054:817656, ack 128313, win 32848, options [nop,nop,TS val 1606204577 ecr 3349117418], length 602
16:49:24.027753 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128313:128391, ack 817656, win 1452, options [nop,nop,TS val 3349119456 ecr 1606204577], length 78
16:49:24.061083 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 817656:818051, ack 128391, win 32848, options [nop,nop,TS val 1606204577 ecr 3349119456], length 395
16:49:24.222903 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128391:128469, ack 818051, win 1452, options [nop,nop,TS val 3349119651 ecr 1606204577], length 78
16:49:24.295059 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [.], ack 128469, win 32848, options [nop,nop,TS val 1606204578 ecr 3349119651], length 0
16:49:28.789315 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 818051:818736, ack 128469, win 32848, options [nop,nop,TS val 1606204587 ecr 3349119651], length 685
16:49:28.954463 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128469:128547, ack 818736, win 1452, options [nop,nop,TS val 3349124382 ecr 1606204587], length 78
16:49:29.075023 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [P.], seq 818736:819399, ack 128547, win 32848, options [nop,nop,TS val 1606204587 ecr 3349124382], length 663
16:49:29.236960 IP 17.188.134.24.443 > xxx.xxx.xxx.xxx: Flags [P.], seq 128547:128625, ack 819399, win 1452, options [nop,nop,TS val 3349124665 ecr 1606204587], length 78
16:49:29.305051 IP xxx.xxx.xxx.xxx > 17.188.134.24.443: Flags [.], ack 128625, win 32848, options [nop,nop,TS val 1606204588 ecr 3349124665], length 0
2020-10-06 16:49:27,734 ERROR - APNS Timeout
It seems in some case the I/O threads cannot handle Apple response properly and do not interrupt the waiting thread.
M.