I mainly need this to enforce RLIMIT_CPU (and RLIMIT_CORE)
when requests come which generate giant, unrealistic diffs.
Per-coderepo limiters may be added in the future. But for now,
I need to prevent cgit from monopolizing resources on my dinky
server.
C<RLIMIT_*> keys may be set to enforce resource limits for
a particular limiter.
+Default named-limiters are prefixed with "-". Currently,
+the "-cgit" named limiter is reserved for instances spawning
+cgit via C<publicinbox.cgitrc>
+
=over 8
=item publicinboxlimiter.<name>.max
my $rdr = input_prepare($env) or return r(500);
my $qsp = PublicInbox::Qspawn->new($self->{cmd}, $cgi_env, $rdr);
- $qsp->psgi_return($env, undef, sub {
+ my $limiter = $self->{pi_config}->limiter('-cgit');
+ $qsp->psgi_return($env, $limiter, sub {
my ($r, $bref) = @_;
my $res = parse_cgi_headers($r, $bref) or return; # incomplete
$res;
my ($self, $name) = @_;
$self->{-limiters}->{$name} ||= do {
require PublicInbox::Qspawn;
- my $max = $self->{"publicinboxlimiter.$name.max"};
+ my $max = $self->{"publicinboxlimiter.$name.max"} || 1;
my $limiter = PublicInbox::Qspawn::Limiter->new($max);
$limiter->setup_rlimit($name, $self);
$limiter;