I had the same issue. It turns out to be multiple thread accessing the same OpenGLES related resource, EAGLContext
to be specific. I guess it is possible that OpenGLES related codes are not thread-safe, and it behaves differently in different OS versions / iPhone 7 / 7+, sometimes it messes up the memory.
After making sure data accesses are synchronised across threads, the problem is gone.