Hi,
Greetings for the day!
We would like to update you that we have created Content Filter NetworkExtension and this extension is working fine till Big Sur M1 however we are facing some strange problem in M1 Monterey. Intermittently, When we try to browse websites, it does not respond and after 3-5 minutes its opened the websites correctly.
We would like to update you that our subclass overrides handleNewFlow, handleInboundDataFromFlow, handleOutboundDataFromFlow, handleInboundDataCompleteForFlow and handleOutboundDataCompleteForFlow. In all these methods we first check whether NEFilterFlow is nil or not and then pauseVerdict and once asynchronous methods completes execution then we call resumeFlow with verdict (allowVerdict/dropVerdict).
When above mentioned issue generated we collected console streaming log and found these lines in the logs (Not from our application):
Ignoring resume command for flow 3c8faf3c4a9f7 which does not exist
Ignoring resume command for flow 3c90795d4d6f9 which does not exist
Ignoring resume command for flow 3c9086d1ede69 which does not exist
Ignoring resume command for flow 3c909b251d53b which does not exist
We are not sure how above line get printed because we don’t have this logs in our source code so we would need your help to understand this problem and resolution so that we can solve this issue.
We have couple of extra queries:
- What is flow mentioned in above logs in bold text? Is it NEFilterFlow's identifier or something else?
- How we can validate whether NEFilterFlow is valid or not before calling resumeFlow
- Why above line is getting printed in log which says flow does not exist.
- Is there any timeout maintained by NetworkExtension?
- We are using XPC for interprocess communication so our question is that, Is NetworkExtension/XPC maintain the queue size and if it overflow the size then above line is getting printed. If this is the case then how we can handle that?
- Is it known issue in NetworkExtension framework itself on M1 Monterey?
Thanks & Regards,
Mohmad Vasim