History log of /openbsd-src/usr.sbin/smtpd/scheduler_ramqueue.c (Results 1 – 25 of 49)
Revision Date Author Comments
# ad8d242d 03-Sep-2024 op <op@openbsd.org>

fix some typos; courtesy of codespell; ok gilles@


# 0dcffd0d 31-May-2023 op <op@openbsd.org>

add missing include of time.h

spotted after a report on OpenSMTPD-portable. While here include
sys/time.h in smtpd.h, as noted in event_init(3), since it includes
event.h.

ok millert@


# d3140113 14-Jun-2021 eric <eric@openbsd.org>

add required headers for smtpd.h and remove unnecessary ones in other files.

ok jung@


# ff01b044 26-May-2021 eric <eric@openbsd.org>

replaces calls to err(3)/errx(3) with fatal()/fatalx() from log.c
for code that runs in the daemon.

ok florian@ millert@


# 118c16f3 31-May-2018 gilles <gilles@openbsd.org>

remove 'where' parameter from all x*() functions in utils.c, it doesn't
really help us with anything, propagate the change in codebase

ok millert@


# a8e22235 24-May-2018 gilles <gilles@openbsd.org>

switch smtpd to new grammar

ok eric@


# f24248b7 09-Jan-2017 reyk <reyk@openbsd.org>

smtpd joins the 7 other daemons that share the same log.c file.

The only major difference was the "log_trace" concept that is only
used by smtpd - move it from log.c into util.c and make it a local

smtpd joins the 7 other daemons that share the same log.c file.

The only major difference was the "log_trace" concept that is only
used by smtpd - move it from log.c into util.c and make it a local
concept. This also needed to rename the global "verbose" variable to
"tracing" in a few places.

OK krw@ gilles@ eric@

show more ...


# a9835440 29-Oct-2015 sunil <sunil@openbsd.org>

Implement smtpctl discover <evpid|msgid>.

discover subcommand schedules envelopes manually moved to the queue.
It triggers a queue walk searching for envelopes with the given id,
schedules them and

Implement smtpctl discover <evpid|msgid>.

discover subcommand schedules envelopes manually moved to the queue.
It triggers a queue walk searching for envelopes with the given id,
schedules them and informs the user number of envelopes scheduled.
Admins no longer would need to restart the daemon to discover
manually moved messages.

Ok gilles@

show more ...


# 953aae25 20-Jan-2015 deraadt <deraadt@openbsd.org>

use <limits.h> comprehensively. For now try to push <> includes to
each .c file, and out of the .h files. To avoid overinclude.
ok gilles, in principle. If this has been done right, -portable shou

use <limits.h> comprehensively. For now try to push <> includes to
each .c file, and out of the .h files. To avoid overinclude.
ok gilles, in principle. If this has been done right, -portable should
become easier to maintain.

show more ...


# acfdf0da 10-Jul-2014 eric <eric@openbsd.org>

Improve the scheduler, better and simpler.

- Get rid of the scheduler_batch structure. The scheduler can now return
envelopes of different types in a single run, interlacing them to avoid
batch

Improve the scheduler, better and simpler.

- Get rid of the scheduler_batch structure. The scheduler can now return
envelopes of different types in a single run, interlacing them to avoid
batch effects.

- Ask for an acknowledgement from the queue when removing or expiring
an envelope to benefit from the inflight envelope limitation mechanism.
This ensures that the scheduler always keeps sending envelopes at a rate
that the queue can sustain in all cases.

- Limit the number of envelopes in a holdq. When a holdq is full,
new envelopes are put back in the pending queue instead, with a
shorter retry time.

- Plumbing for proc-ified schedulers.

imsg version bump. smtpctl stop before updating.

ok gilles@

show more ...


# af0dba2a 08-Jul-2014 sobrado <sobrado@openbsd.org>

fix typos.

ok jmc@


# 8904a2d6 19-Apr-2014 gilles <gilles@openbsd.org>

(void) cast strlcpy/strlcat/snprintf calls that cannot truncate (and would
be harmless in this case if they could)


# d6b3bcf4 04-Feb-2014 eric <eric@openbsd.org>

internal improvements and cleanups

- get rid of the whole penalty thing for failed envelopes in the mta and scheduler.
- do not disable routes on smtp errors
- try to schedule all types of envelopes

internal improvements and cleanups

- get rid of the whole penalty thing for failed envelopes in the mta and scheduler.
- do not disable routes on smtp errors
- try to schedule all types of envelopes on each scheduler frame.

show more ...


# c1392a69 26-Dec-2013 eric <eric@openbsd.org>

bcopy -> memmove
bzero -> memset


# 81ab3bcc 05-Dec-2013 eric <eric@openbsd.org>

When a relay fails, let the scheduler update all envelopes in the
holdq as if they tempfailed.


# a98c8336 03-Dec-2013 eric <eric@openbsd.org>

schedule in O(log n)


# 7eed50e8 20-Nov-2013 eric <eric@openbsd.org>

Rework the mda and scheduler to use the holdq mechanism instead of
tempfail for limiting the number of pending deliveries to the same
user. This allows to reach optimal delivery time even in case of

Rework the mda and scheduler to use the holdq mechanism instead of
tempfail for limiting the number of pending deliveries to the same
user. This allows to reach optimal delivery time even in case of
burst, while keeping the number of inflight envelopes low.

show more ...


# 6dc81a07 27-Oct-2013 eric <eric@openbsd.org>

Implement a feedback mechanism which allows the mta to "hold" envelopes
in the scheduler when it has too many tasks for a given relay. The
envelopes are put on a wait queue, and are not scheduled ag

Implement a feedback mechanism which allows the mta to "hold" envelopes
in the scheduler when it has too many tasks for a given relay. The
envelopes are put on a wait queue, and are not scheduled again until
the mta "releases" some envelopes from that queue.

It prevents from having too many inflight envelopes, which are out of reach
for the admin.

show more ...


# d17ec9a9 25-Oct-2013 eric <eric@openbsd.org>

If the admin issues a remove request for an envelope which is inflight, do not
ignore the request. Instead defer the removal until the envelope returns to the
scheduler. Simplify code by a great deal

If the admin issues a remove request for an envelope which is inflight, do not
ignore the request. Instead defer the removal until the envelope returns to the
scheduler. Simplify code by a great deal in the process.

show more ...


# bf658b0f 19-Jul-2013 eric <eric@openbsd.org>

Implement a scheduler_proc backend


# 35e161d3 19-Jul-2013 eric <eric@openbsd.org>

scheduler improvements:
- implement suspend/resume scheduling for individual envelopes or message,
with the associated smtpctl commands.
- allow the mta to request immediate scheduling of an envelo

scheduler improvements:
- implement suspend/resume scheduling for individual envelopes or message,
with the associated smtpctl commands.
- allow the mta to request immediate scheduling of an envelope.
- on temporary failures a penalty can be given to further delay the next try.

show more ...


# 299c4efe 24-May-2013 eric <eric@openbsd.org>

sync with OpenSMTPD 5.3.2

ok gilles@


# bc53cd6a 10-Feb-2013 eric <eric@openbsd.org>

When getting the next batch of envelope to schedule, use an array to
store envelope ids, rather than a dynamic list.

ok gilles@


# 65c4fdfb 26-Jan-2013 gilles <gilles@openbsd.org>

Sync with our smtpd repo:

* first bricks of ldap and sqlite support (not finished but both working)
* new table API to replace map API, all lookups are done through tables
* improved handling of tem

Sync with our smtpd repo:

* first bricks of ldap and sqlite support (not finished but both working)
* new table API to replace map API, all lookups are done through tables
* improved handling of temporary errors throughout the daemon
* improved scheduler and mta logic: connection reuse, optimizes batches
* improved queue: more tolerant to admin errors, new layout, less disk-IO
* improved memory usage under high load
* SSL certs/keys isolated to lookup process to avoid facing network
* VIRTUAL support improved, fully virtual setups possible now
* runtime tracing of processes through smtpctl trace
* ssl_privsep.c sync-ed with relayd
* ssl.c no longer contains smtpd specific interfaces
* smtpd-specific ssl bits moved to ssl_smtpd.c
* update mail address in copyright

FLUSH YOUR QUEUE. FLUSH YOUR QUEUE. FLUSH YOUR QUEUE. FLUSH YOUR QUEUE.

smtpd.conf(5) simplified, it will require adaptations

ok eric@

show more ...


# 4fe02f32 20-Nov-2012 eric <eric@openbsd.org>

Allow "smtpctl show queue" to run in "online" mode if the smtpd server
is running. The scheduler sends the runtime state of each envelope to
the queue process which loads the envelope, fills the run

Allow "smtpctl show queue" to run in "online" mode if the smtpd server
is running. The scheduler sends the runtime state of each envelope to
the queue process which loads the envelope, fills the runtime bits and
sends the envelope back to the client. Iteration over the envelope set
happens in small chunks to make the request interruptible and to allow
the server to keep doing its job in the meantime.

Adpat "smtpctl schedule-all" to schedule the messages one by one using
the same iteration mechanism.

Document "smtpctl monitor" and "smtpctl show queue".

ok gilles@

show more ...


12