Comments (6)
Hello,
After having a second look, it looks like the high CPU had nothing to do with netty ( even though it could have on an older version of java ) , it was something rather silly . The scenario that caused the high CPU usage is the following :
A valid development certificate was used on production apns
the SSL handshake gets completed, still APNS closes the connection immediately ( because the certificate is not a production certificate)
pushy goes into an infinite loop reconnecting thinking that the certificate is valid and the connection just got closed causing high CPU usage.
from pushy.
A valid development certificate was used on production apns
Ah -- yes. We actually just ran into this issue on the mailing list. I'll look into it a bit, but I'm not sure there's a whole lot we can do other than document the issue. I'm curious as to whether the gateway is sending an actual error code before closing the connection, though.
Thanks for following up!
from pushy.
…also, I updated the summary of this issue to more accurately reflect the problem.
from pushy.
Maybe one thing you could do if the gateway isn't sending an error code is to validate the certificate before you open a connection. The developer certificate 's subject contains "CN=Apple Development IOS Push Services" , and the production certificate's subject contains "CN=Apple Production IOS Push Services" .
Thanks.
from pushy.
True, but I was surprised to learn today that there doesn't seem to be a good way to get a KeyStore
back out of an SSLContext
after it's gone in. Any suggestions from the audience?
If we can't get a KeyManager
out of an SSLContext
, we'd have to really rethink how the PushManagerFactory
works, and I'm not sure any of the designs I've been able to think of so far would make sense. There's still some danger that the best we can do is to document the issue in a FAQ somewhere.
from pushy.
I added this to our FAQ for now. If this turns into a bigger problem in the future, we'll consider more significant architectural changes to address it.
Thanks for calling it to our attention!
from pushy.
Related Issues (20)
- Intermittent layer 7 firewall blocks due to missing SNI HOT 2
- Requesting to release a new tag for Live activity support HOT 2
- Failed to create channel java.io.IOException: Connection reset by peer HOT 6
- upgrade the netty-transport from 4.0.37 to 4.1.37 HOT 2
- pushy0.15.0 Stream closed before a reply was received HOT 1
- Connection reset by peer. HOT 3
- ipv6 problem HOT 2
- java.util.concurrent.ExecutionException: io.netty.handler.codec.http2.Http2Exception: Error decoding headers: io/netty/handler/codec/http/HttpHeaderValidationUtil HOT 1
- pushy0.15.2 Stream closed before a reply was received And GOAWAYException HOT 2
- Is the proxy way to replace this? Then a mistake was made
- javax.net.ssl.SSLHandshakeException: Server chose TLSv1, but that protocol version is not enabled or not supported by the client. HOT 5
- Stream closed before write could take place HOT 4
- push 0.15.1 io.netty.handler.codec.http2.StreamBufferingEncoder$Http2GoAwayException in a lot of requests HOT 2
- Support for "apns-unique-id" HOT 1
- return success when send notifacation after uninstalling app HOT 1
- I use Pushy to push the message,then I get "success=true",but the phone not responding HOT 2
- couple of Live Activity issues: stale-date is missing, and relevance-score can now have a value greater than 1.0 HOT 2
- Native SSL provider is available; will use native provider. HOT 4
- ApnsChannelPool java.io.IOException "Failed to create channel - Connection reset by peer" HOT 2
- Network is unreachable: `api.push.apple.com/2620:149:208:4308:0:0:0:a:443` HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pushy.