@@ -812,6 +812,66 @@ mod tests {
812
812
assert_eq ! ( 1 , exporter. get_emitted_logs( ) . unwrap( ) . len( ) )
813
813
}
814
814
815
+ #[ tokio:: test( flavor = "current_thread" ) ]
816
+ #[ ignore = "See issue https://github.com/open-telemetry/opentelemetry-rust/issues/1968" ]
817
+ async fn test_batch_log_processor_shutdown_with_async_runtime_current_flavor_multi_thread ( ) {
818
+ let exporter = InMemoryLogsExporterBuilder :: default ( )
819
+ . keep_records_on_shutdown ( )
820
+ . build ( ) ;
821
+ let processor = BatchLogProcessor :: new (
822
+ Box :: new ( exporter. clone ( ) ) ,
823
+ BatchConfig :: default ( ) ,
824
+ runtime:: Tokio ,
825
+ ) ;
826
+
827
+ //
828
+ // deadloack happens in shutdown with tokio current_thread runtime
829
+ //
830
+ processor. shutdown ( ) . unwrap ( ) ;
831
+ }
832
+
833
+ #[ tokio:: test( flavor = "current_thread" ) ]
834
+ async fn test_batch_log_processor_shutdown_with_async_runtime_current_flavor_current_thread ( ) {
835
+ let exporter = InMemoryLogsExporterBuilder :: default ( )
836
+ . keep_records_on_shutdown ( )
837
+ . build ( ) ;
838
+ let processor = BatchLogProcessor :: new (
839
+ Box :: new ( exporter. clone ( ) ) ,
840
+ BatchConfig :: default ( ) ,
841
+ runtime:: TokioCurrentThread ,
842
+ ) ;
843
+
844
+ processor. shutdown ( ) . unwrap ( ) ;
845
+ }
846
+
847
+ #[ tokio:: test( flavor = "multi_thread" ) ]
848
+ async fn test_batch_log_processor_shutdown_with_async_runtime_multi_flavor_multi_thread ( ) {
849
+ let exporter = InMemoryLogsExporterBuilder :: default ( )
850
+ . keep_records_on_shutdown ( )
851
+ . build ( ) ;
852
+ let processor = BatchLogProcessor :: new (
853
+ Box :: new ( exporter. clone ( ) ) ,
854
+ BatchConfig :: default ( ) ,
855
+ runtime:: Tokio ,
856
+ ) ;
857
+
858
+ processor. shutdown ( ) . unwrap ( ) ;
859
+ }
860
+
861
+ #[ tokio:: test( flavor = "multi_thread" ) ]
862
+ async fn test_batch_log_processor_shutdown_with_async_runtime_multi_flavor_current_thread ( ) {
863
+ let exporter = InMemoryLogsExporterBuilder :: default ( )
864
+ . keep_records_on_shutdown ( )
865
+ . build ( ) ;
866
+ let processor = BatchLogProcessor :: new (
867
+ Box :: new ( exporter. clone ( ) ) ,
868
+ BatchConfig :: default ( ) ,
869
+ runtime:: TokioCurrentThread ,
870
+ ) ;
871
+
872
+ processor. shutdown ( ) . unwrap ( ) ;
873
+ }
874
+
815
875
#[ derive( Debug ) ]
816
876
struct FirstProcessor {
817
877
pub ( crate ) logs : Arc < Mutex < Vec < ( LogRecord , InstrumentationLibrary ) > > > ,
0 commit comments