mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Revert test added by commit d207038053.
				
					
				
			This test was trying to test the mechanism to release kernel FDs as needed to get us under the max_safe_fds limit in case of spill files. To do that, it needs to set max_files_per_process to a very low value which doesn't even permit starting of the server in the case when there are a few already opened files. This test also won't work on platforms where we use one FD per semaphore. Backpatch-through: 10, till where this test was added Discussion: https://postgr.es/m/CAA4eK1LHhERi06Q+MmP9qBXBBboi+7WV3910J0aUgz71LcnKAw@mail.gmail.com https://postgr.es/m/6485.1578583522@sss.pgh.pa.us
This commit is contained in:
		@@ -7,7 +7,7 @@ use strict;
 | 
				
			|||||||
use warnings;
 | 
					use warnings;
 | 
				
			||||||
use PostgresNode;
 | 
					use PostgresNode;
 | 
				
			||||||
use TestLib;
 | 
					use TestLib;
 | 
				
			||||||
use Test::More tests => 11;
 | 
					use Test::More tests => 10;
 | 
				
			||||||
use Config;
 | 
					use Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Initialize master node
 | 
					# Initialize master node
 | 
				
			||||||
@@ -133,42 +133,5 @@ is($node_master->psql('postgres', 'DROP DATABASE otherdb'),
 | 
				
			|||||||
is($node_master->slot('otherdb_slot')->{'slot_name'},
 | 
					is($node_master->slot('otherdb_slot')->{'slot_name'},
 | 
				
			||||||
	undef, 'logical slot was actually dropped with DB');
 | 
						undef, 'logical slot was actually dropped with DB');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Test to ensure that we don't run out of file descriptors even if there
 | 
					 | 
				
			||||||
# are more spill files than maxAllocatedDescs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set max_files_per_process to a small value to make it more likely to run out
 | 
					 | 
				
			||||||
# of max open file descriptors.
 | 
					 | 
				
			||||||
$node_master->safe_psql('postgres',
 | 
					 | 
				
			||||||
	'ALTER SYSTEM SET max_files_per_process = 26;');
 | 
					 | 
				
			||||||
$node_master->restart;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$node_master->safe_psql(
 | 
					 | 
				
			||||||
	'postgres', q{
 | 
					 | 
				
			||||||
do $$
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
    FOR i IN 1..10 LOOP
 | 
					 | 
				
			||||||
        BEGIN
 | 
					 | 
				
			||||||
            INSERT INTO decoding_test(x) SELECT generate_series(1,5000);
 | 
					 | 
				
			||||||
        EXCEPTION
 | 
					 | 
				
			||||||
            when division_by_zero then perform 'dummy';
 | 
					 | 
				
			||||||
        END;
 | 
					 | 
				
			||||||
    END LOOP;
 | 
					 | 
				
			||||||
END $$;
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$result = $node_master->safe_psql('postgres',
 | 
					 | 
				
			||||||
	qq[
 | 
					 | 
				
			||||||
SELECT data from pg_logical_slot_get_changes('test_slot', NULL, NULL)
 | 
					 | 
				
			||||||
    WHERE data LIKE '%INSERT%' ORDER BY lsn LIMIT 1;
 | 
					 | 
				
			||||||
]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$expected = q{table public.decoding_test: INSERT: x[integer]:1 y[text]:null};
 | 
					 | 
				
			||||||
is($result, $expected, 'got expected output from spilling subxacts session');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Reset back max_files_per_process
 | 
					 | 
				
			||||||
$node_master->safe_psql('postgres',
 | 
					 | 
				
			||||||
	'ALTER SYSTEM SET max_files_per_process = DEFAULT;');
 | 
					 | 
				
			||||||
$node_master->restart;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# done with the node
 | 
					# done with the node
 | 
				
			||||||
$node_master->stop;
 | 
					$node_master->stop;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user