Describe the bug

Currently, if one attempts to do a WATCH within a transaction, it fails.

ERR WATCH inside MULTI is not allowed

However, if one does an UNWATCH within a MULTI/EXEC transaction it doesn't fail, but also has zero effect (i.e. its only executed at exec time when the dirty/cleanliness of the client's WATCHes was already decided. So, one just either get a nil back (EXEC was aborted due to WATCH being dirty) or one gets a pointless "OK" back in the response array where the UNWATCH was issued.

To reproduce

insert an UNWATCH into a MULTI/EXEC transaction.

Expected behavior

Should be rejected similarly to WATCH.

Comment From: enjoy-binbin

9108, I remember I had this question before

Comment From: oranagra

thanks @enjoy-binbin for the reference. so the conclusion is that it's wrong, but we rather leave it like that than make a change that can cause some apps to break.