yum install does not support epoch without the arch, and we won't know
what the arch will be when it's not provided. It could either be the OS
architecture, or 'noarch', and we don't make that distinction in the
pkg.list_pkgs return data.
Fixes#31619.
In multimaster setup new minion having no master pubkey sends initial
auth requests to each master without token but it tries to verify the
token in the received payload for each master excluding the first.
This happens because minion makes this decision depending on the master
pubkey file existense.
This fixes a bug where if you have any changes pushed to a mercurial repo no matter which revision you specify the state will claim the repository is updated. This also correctly detects when you switch from one branch to another in mercurial even if there are no new changes being pulled.
Two issues causing this:
- On Windows, `stats.st_mode` is `0o100444` instead of what is checked
for which is `0o100400`. This is because basic Windows permissions
don't distinguish between user/group/all like Linux does. Note that
Windows Access Control Lists (ACLs) are not part of `stat` functionality.
- On Windows, `os.remove` will fail if a file is marked read-only. In
this case, need to mark it writable before deleting.
Signed-off-by: Sergey Kizunov <sergey.kizunov@ni.com>
This doesn't fix any issues but is an optimization and is the recommended
use in the Tornado docs. `LOOP_CLASS.current()` should be used unless
we want to use a different IOLoop than the main thread's IOLoop.
Not using `current()` makes sense in places such as SyncWrapper and MWorker.
However, for use in places such as `SMinion.__init__()`, what essentially
happens is that one IOLoop is used for the `run_sync()`. The `run_sync()`
invokes `start()`. `start() will make this IOLoop current, but it will put
the original current IOLoop back when it is finished, even if it is None.
So what essentially happens is that one IOLoop is used within the ZeroMQ
and TCP transports during the `run_sync` and another is used during
subsequent operations.
Using `current()` will either use the current IOLoop or create a new one
and call it current if none exists. This plays well with both the
ZeroMQ and TCP transports since they use current() internally and so the
same IOLoop will be used throughout execution, both before and after
the run_sync.
Signed-off-by: Sergey Kizunov <sergey.kizunov@ni.com>