chiark / gitweb /
Leave a bit of headroom above test port number, since we go at least
[disorder] / README.reload
1 The effect of "disorder reconfigure"
2 ====================================
3
4 This is current rather vaguely defined and implemented.  This file
5 will lay out what you can and cannot change over a reconfigure.  Any
6 other changes will require a full server restart.
7
8 The situation is gradually improving; this file tracks the current
9 state.
10
11 * Options that might have to remain the same across restart
12
13 Arguably if there is anything in this section then that's a serious
14 bug!
15
16 ** alias (enforced at reload only)
17
18 This defines how aliases are inserted into the track database.  Need
19 to think about how changing it will affect things.
20
21 ** namepart (enforced at reload only)
22
23 Probably affects alias construction.
24
25 ** stopword (enforced at reload only)
26
27 The search database will have to be rebuilt from scratch.
28
29 ** user (enforced at reload only)
30
31 All the files will be owned by the wrong user!
32
33 ** Alias, search database, etc
34
35 Rescan can regenerate aliases and the search and tag databases but we
36 rather assume that they are either empty or good.  Therefore we need
37 to store anything that can affect these values and erase them if they
38 change.
39
40 The solution is a global pref _dbparams which contains the hash of the
41 alias, stopword and namepart data.
42
43 * Options that must remain the same across reload
44
45 Some things will just require a restart.  We should either enforce
46 this (refusing to accept modified configurations that purport to
47 change them) or explicitly ignore it.
48
49 ** home (enforced at reload)
50
51 We absolutely cannot accept changing our state directory.
52
53 ** lock (generates a deprecation warning)
54
55 Liable to be removed anyway.
56
57 ** nice_speaker (generates a warning)
58
59 You can't renice a running speaker to make it less nice (and we don't
60 try to make it more nice).
61
62 * Options that ought to be changable across reload but aren't
63
64 These options need some work somewhere to be changeable just by a
65 reload.
66
67 ** api
68
69 The main server will cope fine with this changing.  The speaker will
70 ignore the change however.
71
72 ** broadcast
73
74 The speaker will ignore the change.
75
76 ** broadcast_from
77
78 The speaker will ignore the change.
79
80 ** collection
81
82 If the set of collections change we ought to initiate a rescan.
83
84 ** device
85
86 The speaker will ignore the change.
87
88 ** multicast_loop
89
90 The speaker will ignore the change.
91
92 ** multicast_ttl
93
94 The speaker will ignore the change.
95
96 ** pause_mode
97
98 The speaker will ignore the change.
99
100 ** sample_format
101
102 The speaker will ignore the change.
103
104 ** speaker_command
105
106 The speaker will ignore the change.
107
108 * Options that can be changed across reload
109
110 These options can be changed at reload and it should just work.
111
112 ** authorization_algoritm
113
114 ** channel
115
116 ** default_rights
117
118 ** listen
119
120 ** mixer
121
122 ** new_bias
123
124 ** new_bias_age
125
126 ** new_max
127
128 ** nice_rescan
129
130 Wouldn't affect an already-running rescan, but reload already cancels
131 and restarts the underway rescan anyway.
132
133 ** noticed_history
134
135 ** reminder_interval
136
137 ** remote_userman
138
139 ** replay_min
140
141 ** signal
142
143 ** sox_generation
144
145 ** scratch
146
147 * Options that can change, but with a caveat
148
149 These options can be changed at reload but there is some caveat about
150 this (which ought to be documented, and in some cases is).
151
152 ** plugins
153
154 Plugin path.  You can change the plugin path but an already-loaded
155 plugin may stay loaded.
156
157 ** cookie_key_lifetime
158
159 Only affects subsequently generated keys - cannot shorten (or extend)
160 the lifetime of the current key.
161
162 ** cookie_login_lifetime
163
164 Only affects subsequently generated cookies - cannot shorten (or
165 extend) the lifetime of already-generated cookies.
166
167 ** history
168
169 The history might not shorten until it's next written.
170
171 ** player
172
173 Won't affect running players or decoders.
174
175 ** queue_pad
176
177 Won't shrink the queue.
178
179 ** tracklength
180
181 Won't affect already-computed lengths.
182
183 * Implementation Considerations
184
185 A likely change is that the speaker will be created on demand and
186 stopped when idle.  Some changes will still be handled via SM_RELOAD
187 but others may require the speaker to quit and restart.