| Line 136... |
Line 136... |
| 136 |
testCompile 'net.bytebuddy:byte-buddy:1.11.13'
|
136 |
testCompile 'net.bytebuddy:byte-buddy:1.11.13'
|
| 137 |
testCompile 'net.bytebuddy:byte-buddy-agent:1.11.13'
|
137 |
testCompile 'net.bytebuddy:byte-buddy-agent:1.11.13'
|
| 138 |
|
138 |
|
| 139 |
}
|
139 |
}
|
| 140 |
|
140 |
|
| - |
|
141 |
/*
|
| - |
|
142 |
* Unpack selenium-remote-driver from the fat jar at startup.
|
| - |
|
143 |
*
|
| - |
|
144 |
* Selenium reads its JS "atoms" as classpath RESOURCES on essentially every WebDriver
|
| - |
|
145 |
* command -- W3CHttpCommandCodec.amendParameters -> executeAtom -> Resources.toString.
|
| - |
|
146 |
* Inside a Spring Boot fat jar that is a NESTED-jar read served by
|
| - |
|
147 |
* org.springframework.boot.loader.jar.ZipInflaterInputStream, and on this loader
|
| - |
|
148 |
* (Spring Boot 2.0.2, 2018) that read is the failure surface behind three separate
|
| - |
|
149 |
* inflater corruptions seen on prod -- "invalid stored block lengths", "invalid distance
|
| - |
|
150 |
* too far back", "invalid code lengths set" -- on a jar whose outer AND nested archives
|
| - |
|
151 |
* both pass `unzip -t`. Intact bytes plus three different inflater errors is a reader
|
| - |
|
152 |
* fault, not a file fault.
|
| - |
|
153 |
*
|
| - |
|
154 |
* requiresUnpack extracts the jar to a real file at launch, so the atom read becomes an
|
| - |
|
155 |
* ordinary filesystem read and leaves the nested reader out of the hot path entirely.
|
| - |
|
156 |
* This is the durable half of the 2026-09-21/22 activation outage (17,508 then 27,768
|
| - |
|
157 |
* failures/day against a ~30-50 baseline); the other half is in
|
| - |
|
158 |
* Oppo/RealmeImeiActivationService, which no longer spends the day's imei pool when the
|
| - |
|
159 |
* whole chunk fails.
|
| - |
|
160 |
*
|
| - |
|
161 |
* NOTE this is also why a restart is an unreliable cure: it was restarted at 13:16 on
|
| - |
|
162 |
* 09-22 and still failed for three hours, then a 16:36 restart came up clean, on the
|
| - |
|
163 |
* SAME jar. Do not treat "restart fixed it" as a diagnosis.
|
| - |
|
164 |
*/
|
| - |
|
165 |
bootJar {
|
| - |
|
166 |
requiresUnpack '**/selenium-remote-driver*.jar'
|
| - |
|
167 |
}
|
| - |
|
168 |
|
| 141 |
defaultTasks 'run', 'build'
|
169 |
defaultTasks 'run', 'build'
|