Commit | Line | Data |
---|---|---|
b7adf2b1 RK |
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 | ||
02ba7921 RK |
8 | The situation is gradually improving; this file tracks the current |
9 | state. | |
b7adf2b1 RK |
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 | ||
02ba7921 | 16 | ** alias (enforced at reload only) |
b7adf2b1 RK |
17 | |
18 | This defines how aliases are inserted into the track database. Need | |
19 | to think about how changing it will affect things. | |
20 | ||
9417e1a3 | 21 | ** namepart (enforced at reload only) |
b7adf2b1 RK |
22 | |
23 | Probably affects alias construction. | |
24 | ||
9417e1a3 | 25 | ** stopword (enforced at reload only) |
b7adf2b1 | 26 | |
9417e1a3 | 27 | The search database will have to be rebuilt from scratch. |
b7adf2b1 | 28 | |
02ba7921 | 29 | ** user (enforced at reload only) |
b7adf2b1 RK |
30 | |
31 | All the files will be owned by the wrong user! | |
32 | ||
74f77840 RK |
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 | ||
b7adf2b1 RK |
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 | ||
02ba7921 | 49 | ** home (enforced at reload) |
b7adf2b1 | 50 | |
02ba7921 | 51 | We absolutely cannot accept changing our state directory. |
b7adf2b1 | 52 | |
02ba7921 | 53 | ** lock (generates a deprecation warning) |
b7adf2b1 RK |
54 | |
55 | Liable to be removed anyway. | |
56 | ||
02ba7921 | 57 | ** nice_speaker (generates a warning) |
b7adf2b1 | 58 | |
02ba7921 RK |
59 | You can't renice a running speaker to make it less nice (and we don't |
60 | try to make it more nice). | |
b7adf2b1 RK |
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. |