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 PostgresNode;
 | 
			
		||||
use TestLib;
 | 
			
		||||
use Test::More tests => 11;
 | 
			
		||||
use Test::More tests => 10;
 | 
			
		||||
use Config;
 | 
			
		||||
 | 
			
		||||
# Initialize master node
 | 
			
		||||
@@ -133,42 +133,5 @@ is($node_master->psql('postgres', 'DROP DATABASE otherdb'),
 | 
			
		||||
is($node_master->slot('otherdb_slot')->{'slot_name'},
 | 
			
		||||
	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
 | 
			
		||||
$node_master->stop;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user