pjfanning opened a new pull request, #3519:
URL: https://github.com/apache/pekko/pull/3519
### Motivation
Backport of #3506 to 1.7.x: wildcard actor-selection matching went through a
regular
expression that backtracks badly — a 26-character pattern in an
`ActorSelectionMessage`
could pin the inbound stream thread for tens of seconds.
### Modification
Cherry-pick of ec6293149b. The only conflict was the import line in
`ActorSelection.scala`
(1.7.x also imports `JavaDurationConverters`, `ccompat` and
`FutureConverters` there);
resolved by adding `Glob` to the existing import. `Glob.scala` and
`GlobSpec` applied
clean — they are plain Scala 2 syntax and Java 8 APIs throughout.
### Result
Same as #3506: the same selections match as before, in time linear in
practice, and
deserializing a selection no longer compiles a regular expression.
### Tests
- `sbt "++ 2.12.21 actor-tests/Test/compile"` — clean, validating Scala 2.12
- `sbt "actor/scalafmtCheckAll" "actor-tests/scalafmtCheckAll"` — clean
- Test suites intentionally left to CI per the release-prep flow; the tests
are the ones
from #3506, including the exhaustive agreement check against
`Helpers.makePattern`
### References
Backport of #3506.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]