We are developing an iOS app and have implemented the new UNNotificationServiceExtension. We have overriden
func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: #escaping (UNNotificationContent) -> Void)
and we call the completion handler.
We send pushes with "mutable-content" = 1
On the developer devices during the development everything worked fine.
However, when we released the app to the store on some devices users received just one notification and all of the others weren't received.
So I grabed a device, where the push notification is not shown and checked the logs:
Sep 16 15:47:15 my-iPhone SpringBoard(UserNotificationsServer)[775] <Info>: Received incoming message on topic my.app.com: <private>
Sep 16 15:47:15 my-iPhone pkd[105] <Info>: match returned 1 plug-ins
Sep 16 15:47:15 my-iPhone accountsd(AccountsDaemon)[104] <Notice>: __48-[ACDServer listener:shouldAcceptNewConnection:]_block_invoke.246 (482) "Idle-exit-preventing transaction ended!"
And afterwards there are no meaningfull messages.
If I send the same push to my development device using the same push certificate and payload, then it appears on the screen and in the logs there are more messages:
Sep 16 15:27:12 my-iPhone SpringBoard(UserNotificationsServer)[2727] <Info>: Received incoming message on topic my.app.com: <private>
Sep 16 15:27:12 my-iPhone pkd[4005] <Info>: match returned 1 plug-ins
Sep 16 15:27:12 my-iPhone SpringBoard(Foundation)[2727] <Notice>: calling plugIn beginUsing:
Sep 16 15:27:12 my-iPhone pkd[4005] <Info>: assigning plug-in <private>(<private>) 4E733350-8D9A-4A6D-8B44-2A4C888E090C to plugin sandbox
Sep 16 15:27:12 my-iPhone pkd[4005] <Notice>: allowing host 2727 /System/Library/CoreServices/SpringBoard.app/SpringBoard to use plug-in <private>(<private>) uuid=4E733350-8D9A-4A6D-8B44-2A4C888E090C at <private>
Sep 16 15:27:12 my-iPhone SpringBoard(PlugInKit)[2727] <Info>: preparing plug-in <private>(<private>)
As you can see on my development device it's able to call the extension, however on the non-development device it finds the plug-in (extension) but somehow is not able to start it.
Did someone experience the same issues?
Thanks!
So after investigation it turned out that there was a bug in iOS 10 that prevented enabling some app extensions.
If a user updated the app before updating to iOS 10, then new extensions did work for him.
Apple has released iOS 10.0.2 (https://support.apple.com/kb/DL1893?locale=en_US&viewlocale=en_US) with a fix.
I have tested all of the extensions after upgrading to iOS 10.0.2 and it works fine now.
Related
I am using Jmeter with MQTT JMeter Plugin to do loading test.
Here is my use cas:
Started 8000 users(threads) during 30 minutes
Each user do one mqtt connect message
Each user do 720 loops to publish a message with 5 seconds timer
Here is my jmeter test plan
My threads
My loop controller:
My timer:
After starting Jmeter, every thing is good:
But after 20 minutes, i am getting many errors for my pub messags:
Here is the error message:
My mqtt server is up and no pb with it.
Jmeter logs:
Aug 01, 2021 3:04:33 PM java.util.Optional ifPresent
INFO: MQTT client is not connected.
Aug 01, 2021 3:04:33 PM net.xmeter.samplers.PubSampler sample
INFO: ** [clientId: ps303411a2200c4e1ca4f34, topic: /test/, payload: 1627830273593ts Publish failed for connection HiveMQTTConnection{clientId='ps303411a2200c4e1ca4f34'}.
Aug 01, 2021 3:04:33 PM java.util.Optional ifPresent
INFO: MQTT client is not connected.
What is the pb ? is this related to Jmeter test plan ? or to my local machine ? i am using EC2 x3 large machine to start Jmeter in background.
since your ramp up period is 1800 sec, you have nearly 5.6k threads at 20th minute where, i think your server starts to saturate. The 501 return code may indicate that some kind of fallback mechanism can give more details about the error, but not sure...
MQTT client is not connected.
It indicates that the connection is down, if you don't see anything suspicious in JMeter logs - most probably it means that your server gets overloaded and cannot handle that many concurrent connections/messages.
Use a combination of listeners like Active Threads Over Time and Response Codes per Second to see what is exact number of users where the problems start occurring
Monitor resources usage like CPU, RAM, Network sockets, Disk IO, etc. to ensure that the MQTT server has enough space to operate, you can use JMeter PerfMon Plugin for this
Check your server logs
Increase JMeter logging verbosity for the MQTT plugin by adding the next line to log4j2.xml file:
<Logger name="net.xmeter" level="debug" />
I'm trying to connect to an Exchange Web Services server which used to work from CFNetwork prior to October 7, but doesn't any more. I don't see any packages that were installed around this time so I'm guessing it was a server change.
I think this is proxied somehow (I don't run the server or have access to it) as some URLs work on this server but some don't. You don't even get prompted for authentication. The server is email dot fahc dot org. You should be able to get an OWA login page, but trying to access an EWS URL (e.g. /ews/Services.wsdl) doesn't work. I have no problems logging into it from Firefox or Chrome, but Safari, Mail, my own apps, etc. are broken.
This is broken on OS X 10.11 and macOS 10.12; OS X 10.10 is fine.
Here's what I get when testing with nscurl with CFNetwork diagnostics enabled. I see it trying to fall back from TLS 1.2 to 1.1 to 1.0, which works elsewhere, but I don't see any more specific errors than 89 (ECANCELED), which is somewhat less than helpful.
Oct 26 14:31:56 nscurl[15026] <Notice>: CFNetwork Diagnostics [3:37] 14:31:56.438 {
Did Fail
Loader: <CFURLRequest 0x7ffbc0502ed0 [0x7fff7552c440]> {url = https://[...]/ews/Services.wsdl, cs = 0x0}
Error: Error Domain=NSPOSIXErrorDomain Code=89 "Operation canceled" UserInfo={NSErrorPeerAddressKey=<CFData 0x7ffbc063a550 [0x7fff7552c440]>{length = 16, capacity = 16, bytes = 0x100201bb0a801e2e0000000000000000}, _kCFStreamErrorCodeKey=89, _kCFStreamErrorDomainKey=1}
init to origin load: 0.00233305s
total time: 0.205145s
total bytes: 0
} [3:37]
Any ideas how I can dig into this further, or should I just file a bug?
Thanks.
This appears to be related to VMware NAT. After switching my VM to bridged networking, this issue disappeared (on both the 10.11 host and 10.12 guest). Thanks to #mikeymikey on Twitter for the suggestion.
i'm new as a Admin and this is an small office with around 15 employees.
we had installed a opensource mailserver(Zimbra) in our local server and it works perfectly on local. & we have registered our domain in bigrock.
I have to make it works on Internet.
I had added the MX Record, A record and TXT record in bigrock and it works on internet. Kindly address me to add txt record, and proper way to map things and all!!
Whenever i logon to the mailserver it shows, Unsecured connection. How to solve this kind of errors?
And Most of the time our domain got blacklisted in (spamhaus or mxtoolbox site - On UCEPROTECTL1, On UCEPROTECTL3, On protected sky) i dont know why it happens more often? (We dont send bulk emails. overall we send around 400 emails per week.)
Due to this blacklisting, our outgoing has been strucked and all our outgoing mails are bouncing back. but still we can able to receive mails. Kindly address this issue!!!?
And Partially some of the domains cant able to receive mails from our domain. net4india spamfilter blocking our mails(one of our client having spamfilter in net4. they didnt receive our mails and we dont even get any bounce mails) and recently one of our client having email in net4india and he did not able to receive mails from our mail server and the error shown in postfix is pasted below,
Mar 2 17:10:37 rytweb postfix/pickup[15292]: 342AA2C1EC4: uid=48 from=
Mar 2 17:10:37 rytweb postfix/cleanup[15603]: 342AA2C1EC4: message-id=<20160302114037.342AA2C1EC4#rytweb.ourdomain.in>
Mar 2 17:10:37 rytweb postfix/qmgr[15293]: 342AA2C1EC4: from=, size=575, nrcpt=1 (queue active)
Mar 2 17:10:46 rytweb postfix/smtp[15607]: 342AA2C1EC4: to=, relay=mail.net4india.com[118.67.248.42]:25, delay=8.9, delays=0.21/0.02/0.15/8.5, dsn=5.0.0, status=bounced (host mail.net4india.com[118.67.248.42] said: 550-Verification failed for 550-Unrouteable address 550 Sender verify failed (in reply to RCPT TO command))
Mar 2 17:10:46 rytweb postfix/cleanup[15603]: 0DDC12C1EC5: message-id=<20160302114046.0DDC12C1EC5#rytweb.ourdomain.in>
Mar 2 17:10:46 rytweb postfix/qmgr[15293]: 0DDC12C1EC5: from=<>, size=2659, nrcpt=1 (queue active)
Mar 2 17:10:46 rytweb postfix/bounce[15611]: 342AA2C1EC4: sender non-delivery notification: 0DDC12C1EC5
Mar 2 17:10:46 rytweb postfix/qmgr[15293]: 342AA2C1EC4: removed
Mar 2 17:10:46 rytweb postfix/local[15615]: 0DDC12C1EC5: to=, orig_to=, relay=local, delay=0.13, delays=0.05/0.02/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
Mar 2 17:10:46 rytweb postfix/qmgr[15293]: 0DDC12C1EC5: removed
How to solve this problems?
In order to secure your mail server you need to run it under SSL - Which is https:\mail.yourdomain.com
Once you have SSL Setup you can still have vulnerabilities - which can be tested with pen-tools or ssllabs. You can also do run a detail mail port check using this tool: Email Authentication and Configuration Tester
The reason you can be having blacklist issues is maybe your mail server is an open-relay? You should test that as well: Open Relay Tester
You also need to add SPF, DKIM, and follow a slew of other RFC's to ensure your email is set up properly, if you haven't already. It's also good to monitor your domain for Blacklists, I use Unlock The Inbox Blacklist Monitor since they package a bunch of tools together, but there are many good options available.
You're not going to get everything perfect in a day, don't get frustrated. You have to isolate the issues and deal with them one at a time.
hit a problem using c3p0. In most cases works fine, but in prod env behind firewalls ocasionally fails to checkout connection. The problem is that it takes it 15 minutes to recognize connection is not usable. The pool is not exausted as other connection are being checked out and used happily during that 15 minute inteval.
logs:
23 Apr 2015 09:08:16.426 [EventProcessor-1] DEBUG c.m.v.c.i.C3P0PooledConnectionPool - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282] on CHECKOUT.
15 minutes later:
23 Apr 2015 09:23:43.073 [EventProcessor-1] DEBUG c.m.v.c.i.C3P0PooledConnectionPool - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282] on CHECKOUT has FAILED.
java.sql.SQLException: Connection is invalid
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.testPooledConnection(C3P0PooledConnectionPool.java:572) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.finerLoggingTestPooledConnection(C3P0PooledConnectionPool.java:451) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.finerLoggingTestPooledConnection(C3P0PooledConnectionPool.java:443) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.refurbishResourceOnCheckout(C3P0PooledConnectionPool.java:336) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.resourcepool.BasicResourcePool.attemptRefurbishResourceOnCheckout(BasicResourcePool.java:1727) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:553) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:756) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:683) [c3p0-0.9.5.jar:0.9.5]
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140) [c3p0-0.9.5.jar:0.9.5]
and then some more logs:
23 Apr 2015 09:23:43.073 [EventProcessor-1] DEBUG c.m.v.r.BasicResourcePool - A resource could not be refurbished for checkout. [com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282]
java.sql.SQLException: Connection is invalid
...
23 Apr 2015 09:23:43.074 [EventProcessor-1] DEBUG c.m.v.r.BasicResourcePool - Resource [com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282] could not be refurbished in preparation for checkout. Will try to find a better resource.
23 Apr 2015 09:23:43.074 [C3P0PooledConnectionPoolManager[identityToken->67oy4j981qzvkd716hgow4|4177fc5c]-HelperThread-#2] DEBUG c.m.v.r.BasicResourcePool - Preparing to destroy resource: com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282
23 Apr 2015 09:23:43.074 [EventProcessor-1] DEBUG c.m.v.c.i.C3P0PooledConnectionPool - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection#41318736] on CHECKOUT.
23 Apr 2015 09:23:43.074 [C3P0PooledConnectionPoolManager[identityToken->67oy4j981qzvkd716hgow4|4177fc5c]-HelperThread-#2] DEBUG c.m.v.c.i.C3P0PooledConnectionPool - Preparing to destroy PooledConnection: com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282
23 Apr 2015 09:23:43.076 [C3P0PooledConnectionPoolManager[identityToken->67oy4j981qzvkd716hgow4|4177fc5c]-HelperThread-#2] DEBUG c.m.v.c3p0.impl.NewPooledConnection - Failed to close physical Connection: oracle.jdbc.driver.T4CConnection#25145762
java.sql.SQLRecoverableException: IO Error: Broken pipe
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) ~[ojdbc6_g-11.2.0.1.0.jar:11.2.0.1.0]
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) ~[ojdbc6_g-11.2.0.1.0.jar:11.2.0.1.0]
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:642) [c3p0-0.9.5.jar:0.9.5]
c3p0 Configuration:
ComboPooledDataSource ods = new ComboPooledDataSource();
...
ods.setInitialPoolSize(5);
ods.setMinPoolSize(5);
ods.setMaxPoolSize(10);
ods.setMaxStatements(50);
ods.setTestConnectionOnCheckout(true);
So nothing too exotic. I know connection loss is possible, hence testing connection on checkout. Any ideas why it is taking so long to verify/fail connection? We are using Oracle database.
thanks.
First, I presume you've verified that there are no checkouts of that Connection in between your log messages. Obviously, you'd expect lots of messages like...
Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection#5a886282] on CHECKOUT.
...before the final message just prior to the failure. Lots of those messages would occur much earlier. Only the final message just prior to the failure should, ideally, be much closer to detection of the failure than the 15 mins that you are seeing.
Assuming that is the final message like that, then the issue has to do with how your Connections die. c3p0 runs a test, and then waits for either successful completion or an Exception. If your Connection dies in a way such that the Connection test merely hangs for 15 mins, well, then you might see what you are seeing.
Here are a few suggestions.
Use c3p0's idleConnectionTestPeriod to detect these failures ideally prior to client checkouts, so that clients are less likely experience long hangs. (You might test on check-in as well.)
Figure out what kind of Connection test is getting run. You are using c3p0 0.9.5, so if your driver supports it, the default test is a call to Connection.isValid(), which should be fast. I don't see in any of the log you've quoted a stack trace of the actual test failure (Perhaps it is a truncated root cause Exception? It would definitely be logged at FINER/DEBUG level by a logger called com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool) Verify (from the stack trace) that your driver is using a fast isValid() Connection test rather tha c3p0's slow default Connection test. If it is not (presumably because your driver doesn't support that), then consider setting a fast preferredTestQuery.
You could try maxAdministrativeTaskTime, but that is only likely to really help if whatever is hanging the Connection test responds to an interrupt() call.
Anyway, I hope this isn't entirely useless!
it looks like it is a situation when connection is terminated by a firewall in a way that there is no response sent back at all, even a TCP ACK without data. In this case query to verify a connection will never return. This is on socket/jdbc driver level.
Solution:
find out firewall disconnect policy (in our case 1 hour)
set c3p0.maxConnectionAge property to force c3p0 reconnect connections every X seconds.
I was wondering if someone could point me out into the right direction.
Right now our IHS / Websphere Server is unable to handle more than 170 concurrent users.
We have tuned the IHS, Websphere Thread Pools, Datasource properties, JVM Heap and kernel parameters.
On heavy load we are seeing this in the IHS plugin log
[Mon Jun 27 10:42:15 2011] 00e90070 00002f30 - ERROR: ws_common: websphereGetStream: Failed to connect to app server on host 'XXXXXX', OS err=79
[Mon Jun 27 10:42:15 2011] 00e90070 00002f30 - ERROR: ws_common: websphereExecute: Failed to create the stream
[Mon Jun 27 10:42:15 2011] 00e90070 00002f30 - ERROR: ws_common: websphereHandleRequest: Failed to execute the transaction to 'XXXXXXNode01_YYYYYY'on host 'XXXXXX'; will try another one
Error 79 is connection refused! The strange thing is that both the IHS and the Websphere are on the same server...
Verifying the Thread Pools in the WAS we don't see them reaching their maximum. Monitoring the HEAP it seems OK...
Any ideas?
What is the number of maximum concurrent connections specified # the Web Containers in WAS Cluster?
Can you make a direct call to the XXXXXXNode01_YYYYYY (by passing the IHS) when this error occurs via your browser)? If it still gives your errors, it simply validates the message provided by the plug-in.
HTH
Manglu