You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Assigning character '*' as regex pattern to mlm_client_set_consumer () breaks the stream, to which it is subscribing. Not even the already subscribed clients receive nothing. This does happen with character '*' only (this is the only one we know about SO FAR). A bad regular expression, i.e. '[' does not break it at all."
Note: There is also PR (#216) pending, but for some reason it breaks some Travis tests.
There will be 2 streams created (FIRST, WORLD); one producer per stream, publishing a random number each half a second. For stream FIRST one consumer is created. For stream WORLD two consumers are created, then we wait 5 seconds to show this works, then we create third consumer with pattern '*' and the stream WORLD gets broken.
Tested against latest upstream master (at that time): commit a0f22db
The text was updated successfully, but these errors were encountered:
Ok, it is confirmed that the root cause if this issue is in zrex_t in czmq. zrex_new ('*') does not return NULL, zrex_valid () returns true but subsequent zrex_match () hangs.
Further investigation showed that underlying SLRE in czmq.git/src/foreign/slre/ is the cause of this error,
i.e.:
Was pattern * supposed to mean a shell wildcard, while the backend expects regular expressions?
Probably the proper fix would be to require consumers to specify real regexes, though a convenience workaround can be to map a specific "*" argument into a ".*" regex (or "^.*$" would the parsing engine require, as some do, or "" as should match anything as well)?
Assigning character '*' as regex pattern to mlm_client_set_consumer () breaks the stream, to which it is subscribing. Not even the already subscribed clients receive nothing. This does happen with character '*' only (this is the only one we know about SO FAR). A bad regular expression, i.e. '[' does not break it at all."
How to reproduce:
Code here: https://gist.github.com/karolhrdina/0fefb5266b57467c0c6e3c17125656f6
Note: There is also PR (#216) pending, but for some reason it breaks some Travis tests.
There will be 2 streams created (FIRST, WORLD); one producer per stream, publishing a random number each half a second. For stream FIRST one consumer is created. For stream WORLD two consumers are created, then we wait 5 seconds to show this works, then we create third consumer with pattern '*' and the stream WORLD gets broken.
Tested against latest upstream master (at that time): commit a0f22db
The text was updated successfully, but these errors were encountered: