[SERVER-59434] Audit expressions for argument type checking errors and preemptively ignore SBE/classic engine differences in the fuzzers Created: 18/Aug/21  Updated: 29/Oct/23  Resolved: 07/Sep/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.1.0-rc0

Type: Task Priority: Major - P3
Reporter: Kyle Suarez Assignee: Mohammad Dashti (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Sprint: QE 2021-08-23, QE 2021-09-06, QE 2021-09-20
Participants:
Linked BF Score: 132

 Description   

The new slot-based execution engine brings with it order-of-evaluation behavior for expression argument that differ from the classic execution engine. In certain cases, SBE will throw an error for invalid arguments when the classic engine would have accepted it.

Because the documentation generally specifies that MongoDB will throw an error for invalid arguments, we will be accepting this new behavior as an improvement in the new SBE engine. We will respect short-circuiting behavior for expressions only when explicitly guaranteed in the documentation.

The query and aggregation fuzzers flag differences in server behavior between versions. Since enabling SBE by default will cause new behavior, we should audit where existing expressions will throw invalid argument errors and preemptively ignore those errors in the fuzzer to avoid creating unnecessary BF tickets.



 Comments   
Comment by Vivian Ge (Inactive) [ 06/Oct/21 ]

Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it’s been triggered. For more active release information, please keep an eye on #server-release. Thank you!

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors (#518)
Branch: updates-in-change-stream-fuzzer
https://github.com/10gen/jstestfuzz/commit/197c97d9b1f0033e2fec7bfa9c7670761c782542

Comment by Mohammad Dashti (Inactive) [ 07/Sep/21 ]

The issue got fixed by blocklisting the errors that happen in either the classic engine or SBE (but not on the other one).

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors (#518)
Branch: master
https://github.com/10gen/jstestfuzz/commit/197c97d9b1f0033e2fec7bfa9c7670761c782542

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/8d852440dc770958d084bf57f8fea8c7ce0e6e32

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/c8ffcfdbcdd7f09d40904bca293be381b85ac4ab

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/1578ded5b5dc9271cdf110e455341853629f6538

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/af365938129321b7694e98ac4bc49cdd45f04d94

Comment by Githook User [ 07/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/f80df1db7d6b7c67485f5050e0ac956d247d6967

Comment by Githook User [ 03/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/fa7fa416f3893fae10b39b80d997d2f26cb7a2b0

Comment by Githook User [ 02/Sep/21 ]

Author:

{'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}

Message: SERVER-59434 Ignore SBE/classic engine due to order-of-evaluation errors
Branch: SERVER-59434
https://github.com/10gen/jstestfuzz/commit/0926acff4496da2fb25de2555e80c530c48717b4

Comment by Mohammad Dashti (Inactive) [ 31/Aug/21 ]

Created a pull request for this issue: https://github.com/10gen/jstestfuzz/pull/518

Generated at Thu Feb 08 05:47:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.