Summary: This diff adds a layer of report deduplication logic in addition to the existing scheme. Suppose issue 1 with trace1a and trace1b, and issue 2 with trace2a and trace2b. If trace1a ends at the same location as trace2a (resp., trace2b) and trace1b ends at the same location as trace2b (resp., trace2a), then consider issues 1 and 2 to be duplicates. This chooses to report the issue with the smaller sum of trace lengths, breaking ties using the issue hashes, and eventually the entire issue. Therefore there is a potential for flakiness with respect the the choice of which report to make within a hash-equivalence class. Reviewed By: sblackshear Differential Revision: D6519607 fbshipit-source-id: 63210abmaster
							parent
							
								
									7e8739de0a
								
							
						
					
					
						commit
						22ec29fabc
					
				@ -0,0 +1,16 @@
 | 
				
			||||
(*
 | 
				
			||||
 * Copyright (c) 2017 - present Facebook, Inc.
 | 
				
			||||
 * All rights reserved.
 | 
				
			||||
 *
 | 
				
			||||
 * This source code is licensed under the BSD style license found in the
 | 
				
			||||
 * LICENSE file in the root directory of this source tree. An additional grant
 | 
				
			||||
 * of patent rights can be found in the PATENTS file in the same directory.
 | 
				
			||||
 *)
 | 
				
			||||
 | 
				
			||||
open! IStd
 | 
				
			||||
 | 
				
			||||
type t = Typ.Procname.t * RacerDDomain.TraceElem.t * Location.t list
 | 
				
			||||
 | 
				
			||||
let encode decoded = B64.encode (Marshal.to_string decoded [])
 | 
				
			||||
 | 
				
			||||
let decode encoded = Marshal.from_string (B64.decode encoded) 0
 | 
				
			||||
@ -0,0 +1,16 @@
 | 
				
			||||
(*
 | 
				
			||||
 * Copyright (c) 2017 - present Facebook, Inc.
 | 
				
			||||
 * All rights reserved.
 | 
				
			||||
 *
 | 
				
			||||
 * This source code is licensed under the BSD style license found in the
 | 
				
			||||
 * LICENSE file in the root directory of this source tree. An additional grant
 | 
				
			||||
 * of patent rights can be found in the PATENTS file in the same directory.
 | 
				
			||||
 *)
 | 
				
			||||
 | 
				
			||||
open! IStd
 | 
				
			||||
 | 
				
			||||
type t = Typ.Procname.t * RacerDDomain.TraceElem.t * Location.t list
 | 
				
			||||
 | 
				
			||||
val encode : t -> string
 | 
				
			||||
 | 
				
			||||
val decode : string -> t
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue