File: ChangeLog

package info (click to toggle)
nws 2.11-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,700 kB
  • ctags: 2,820
  • sloc: ansic: 28,849; sh: 3,289; java: 1,205; makefile: 697; perl: 12
file content (465 lines) | stat: -rwxr-xr-x 22,181 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
2.11
	- removed deprecated functions; PeerName, IPAddressMachine and
	  IPAddressImage
	- added time command to nws_ctrl
	- fixed a problem with timestamp when nameserver started to syncronize
	- be sure that -i won't override the pid when the servers couldn't get
	  a port (probably another server already running)
	- reworked some of the priority for the logged messages
	- added performance number to the nws_memory and reworked the ones in
	  the nameserver
	- removed obsolete functions in nws_api.c relatives to the forecaster
	- AutoFetchCheck had a wrong unsigned argument: fixed
	- Changed the signature of GetOptionValue and made it thread-safe
	- rewrote the internal nws_api.c to be able to hanlde multiple
	  nameservers (UseNameserver adds nameservers now)
	- added mutexes to nws_api.c: first attempt to make it thread-safe
	- added AutoFetchAlready to check if we already are autofetching a
	  series.
	- added AutoFetchError to get a list of series which have been
	  disconnected (since last time AutoFetchError has been called)
	- the measurement returned in ForecastCollection with ComputeForecast
	  is now the last known measurement (wasn't used before)
	- added AutoFetchMessage for now to be used internally
	- added IsResourceValid to check a resource name
	- added SetDiagnosticsLevel to be used with our daemons
	- removed a spurios backtick in nws-hostadmin (thanks Laura)
	- answer to NS_SEARCH forking when dataset is too big
	- fix a non-terminating string in GetObject
	- changed the functions to talk to the nameserver to have a *Timeout
	  version
	- added -t option for nws_search
	- fixed an off by one in array assignemt in register.c
	- more work in the AutoFetch* family
	- memory and nameserver now can poll instead of waiting for a very
	  small amount of time
	- fixed a possible race condition on disconnection (and new
	  connections) when using threads
	- fixed a possible lock in the daemons waiting for messages (timeout
	  was set to 0 by accident)
	- added FindNwsAttribute to nws_api
	- modified SearchForName to add capability to search for just initial
	  matching (ie cisa can now match cisa.cs.ucsb.edu:8090)
	- removed obsolete nws_forecaster daemon
	- NameOf* are now thread-friendly: they return a newly allocated
	  memory that needs to be freed by the caller.
	- Fixed ObjectToSeries
	- EstablishAnEar now can deals with NULL parameters
	- Added GET_FORECASTS message for the proxy
	- Removed unused Experiment structure: using FORECASTAPI_Measurement
	  instead
	- added 'proxy' command to query the nws_proxy
	- nws_ctrl proxy print xml snippet 
	- removed atoi for strtol
	- removed obsolete nws_mirror.c
	- GetEnvironmentValue now returns malloc'd string
	- added NWSAPI_GetDefaultPort to nws_api.c
	- added --enable-experimental-forecasts
	- 25% improve in the Forecast memory footprint
	- removed MAX_OBJECT_SIZE and relative checks
	- Forecast contains now both errors (MAE and MSE)
	- fixed the memory sensor to deal with the new linux kernel (2.6)
	  and be more robust if we don't understand what we've read
	- removed ForecastStateStruct typedef: useless
	- promoted the experimental sensors into the normal build
	- in register.c we weren't changing the host_cookie when dropping
	  a socket
	- moved the handler for SIGPIPE (SocketFailure) into EstablishAnEar
	- SocketFailure is now a private function
	- added AutoFetchBeginObjects, AddObject and restructure some
	  internals in nws_api.c
	- added NWSAPI_StartFetching to interact with the proxy
	- added proxyFetch command to nws_ctrl
	- implemented START_FETCHING message in the proxy
	- removed the check for double object in AddObject:
	  RegisterObject already does that
	- exported ConditionSocket from protocol.c: it returns the
	  multiply factor for the socket buffer
	- in the tcp experiments we now determine if the OS allocate
	  double buffers (ie linux)
	- removed dependency on nws_forecast_api.h; nws_api.h does it all
	- the memory will attempt to unregister the series it's
	  responsible for
	- removed unused struct Skill and functions using it
	- removed not-so-useful struct Series, Activity and Control and
	  modified functions that generates the object from them
	- the freeMemory uses active and passive as type instead of 'a'
	  and 'p'
	- the new sensor won't be able to talk to an older memory
	  (removed StoreExperiment)
	- fixed a long lasting problem related to the CPU sensor not
	  reporting the right values: it was due to the (wrong) parsing
	  of the uptime output
	- AutoFetchEnd can now remove multiple series in one call
	- the proxy stop the autofetching before starting for each given
	  series
	- slightly reworked the build system
	- added nws(7) man page
	- removed ctrl_host and ctrl_mem
	- worked on the order we resolve inet address (we were running
	  into problems with very broken DNS)
	- moved ToggleDiagnostics to where it belongs: diagnostic.c
	- added RetrieveFromMyNameserver
	- Removed RecvMsgType (basically useless) and added RecvHeader,
	  still not so used, but more useful
	- added ack/nack for adding/removing member message
	- added more checks when receiving nacks
	- renamed CLIQUE_TOKEN_ACK to CLIQUE_ACK
	- added check in StartCliqueActivity that we indeed have at least
	  2 members after resolving the names
	- the new clique_protocol showed already to be more resilient and
	  stable than the old one: trying now to get even more stable and
	  better timing (closer to what the user asked)
	- we are more discriminating when there are multiple series with
	  the same name: nws_api.c tries now to get the active one first.

2.10.1
	- fixes from Mike Closson: thanks!! Should fix some of the misterious
	  segfaults received by some users.
	- fixes from some valgrind-found error (or complaints)
	- released with NMI R5.1

2.10
	- hopefully got the uint32_t thing resolved
	- fixes to compile on AIX 5.2
	- removed C++ style comment from the Nwslapd
	- autoconf wasn't recurse properly when using --with-globus-flavor
	- fixed wrong logic in nws_ctrl.c using GETTOK
	- added missing signal handler while DoExpTcp
	- removed some EINTR check: EINTR is needed when using sigalarm
	- the network sensor could hang when using nonblocking socket
	  (ironic?). Fixed.
	- Added new message to report a timeout feedback back to the parent
	  (the child is the one to do the network experiment hence it's the
	  one to know how long it took).
	- Send/RecvBytes now returns the # of bytes succesfully moved across
	  the network.
	- Adjusted the automatic timeout discovery to be more aggressive on
	  host that are unresponsive.
	- Send/RecvBytes now they are called *Wait and, when used with
	  non-blocking socket, can return whenver the socket is not ready
	  (returning the # of bytes sent/received).
	- fixed a bug in autofetch introduced with the new message
	  STORE_AND_REGISTER.
	- the memory now adds the attribute 'target' for the old series.
	- changes in the clique protocol to have a reliable stop.
	- added nws_ctrl(.1) to filelist.in
	- fixed a race condition in the clique protocol that prevented the
	  clique to be registered with the nameserver.
	- fixed behaviour of nws_extract.
	- added a 3rd values for the default timeouts: the 'use this timeout
	  if nothing could be send/recv' timeout.
	- fixed some missing dependencies during build
	- re-implemented the clique logic: we should be able to reliably
	  start/stop the clique and to take measurement at the given time.
	- the nameserver now uses the new registration even if we have an old
	  equivalent one (the clique reigstration wasn't properly updated)
	- fixed a missing ! in the HOST_REGISTER handling (host_protocol.c)
	- fixed a possible deadlock when terminating the sensor using SIGINT
	- if we are forking send the token in a separate process
	- randomized the sequence of hosts when we are taking experiments

2.9
	- changed the way we used the SUBDIRS in the build process: make dist
	  was failing to include directories we needed
	- added some static information to the host registration
	- added functions to return values from uname(2) and from sysconf
	  about type or machine and memory installed.
	- added compilation flags for the host registration
	- fixed some memory leak in the nameserver
	- removed old pimple code
	- nws_extract works now with series that have hosts without a domain
	  (ie bean.cs.ucsb.edu:9786.bandwidthTcp.32.16.256.aeonflux:9786)
	- nws_extract prints now the port with the hostname
	- added new message STORE_AND_REGISTER: now the sensor can send the
	  experiment to the memory with the registration object and the memory
	  will take care of it
	- exposed RegisterWithNameServer because we may want to register an
	  object without having it in our registration list (ie the memory
	  doesn't use the normal registration procedure for the series)
	- moved struct registrations into register.{c.h} so that both the
	  memory and the nameserver can use it: created InsertRegistration(),
	  DeleteRegistration(), CheckRegistrations(), SearchForName(),
	  SearchForObject and InitRegistrations()  to access the structure
	- the memory now register the series and tries to re-register orphaned
	  series (ie when the memory starts looks for older states and comes
	  up with some trimmed down registrarion)
	- removed NameOfCookieHost since HostCImage does the same thing
	- added RemoteHostSkill to access UseSkill remotely
	- added nws_ctrl: it will eventually substitute most of the binaries
	  (start/halt_activity, nws_ping, ctrl_host, ctrl_mem).
	- nws_memory when restarted tries to re-register series in its
	  storage
	- added experimental support for database in nws_memory
	- optimized WriteStateRec
	- reorganize nws_memory to make it easy to add different backend
	- fixed a bug when using SkillResources in periodic.c and
	  clique_protocol.c
	- added StoreNewExperiment to deal with the new STORE_AND_REGISTER
	  message: the sensor can talk to both new and old memories.
	- fixed some memory leaks in host_protocol.c and register.c
	- better check in some Portability functions
	- added memorySpeed sensor
	- timestamp is now the time the record arrived: added expiration field
	  to indicate for how long the record is valid
	- added NotifyOnNewConnection() function to register call-back
	  whenever an accept is done
	- fixed race condition when registering with old memory (thanks
	  larry!)
	- make the build system happier in case of cross-compilation
	- fixed a configuration bug that lead to compilation warnings
	- nws_extract return 0 on success and 1 on failure

2.8.1
	- removed code in configure.in to look for programs we don't use 
	- fixed the way that UPTIME_PATH and VMSTAT_PATH is used (before it
	  was never failing to find them)
	- removed call to getpgid to avoid a core dump on exit (only on cray)

2.8
	- changed RegistrationSet(): it now returns a string that needs to be
	  freed by the caller
	- host_protocol.c should now be thread safe, register.c should
	  naturally be thread safe (a part from the deprecated functions)
	- be more anal retentive for threads in osutils.c and protocol.c
	- HOST_CHANGE_MEMORY was not yet implemented: done.
	- changed forecast_api.h to nws_forecast_api.h to avoid name
	  collision/pollution.
	- fixed a wrong order for skills and units of measurements
	- fixed wrong number for RESOURCE_COUNT
	- SkillAvailable (still available) extended to be
	  SkillAvailableForControl
	- started to work on rationalizing the addition of a new sensor
	  experiment  (need to modify only skill.{c|h})
	- made periodic.c and clique_protocol.c thread safe
	- host_protocol.c implements all the calls needed to interact with a
	  host: started to change all client to use those
	- from this version, the NS_[UN]REGISTERED message is considered
	  redundant and received asynchronoulsy in host_protocol.c. With this
	  change the nameserver doens't need anynore to deal directly with
	  these message, but will let host_protocol.c to do that
	- nameserver doesn't send anymore *REGISTERED message if it detects a
	  new sensor
	- revamped SameHost 
	- struct host_desc is no more
	- removed Lookup: was somewhat redundant and barely used in the code
	- the functions oprating on the cookie are now mainly in register
	- some cleanup to avoid compiler warnings
	- WaitChild is now defined in osutil.c (used by the sensor)
	- removed traces of ldap from IncomingRequest
	- Added SkillOptionDefault which returns the system default for the
	  option and for the skill
	- a lot of work in the way a new experiment is integrated into NWS: it
	  should be easier or at least more in the hands of the experiment
	  writer: all the old sensors have been converted
	- added SkillOptionFormat 
	- removed any knowledge of low-level sensor from skills.c (now tcp
	  experiment are handled completely at the low level sensor)
	- fixed the -d option of the memory
	- grouped all the experimental sensor under one configure flag
	- Made SkillOptions more secure: it won't write all over the memory if
	  *toWhere is not big enough
	- fixed some unchecked string received on the network
	- we spawn a single process to do all the clique experiment for a
	  certain skill
	- added -x options to the sensor to force a specific port when doing
	  network experiment (closes #55).
	- we are a bit more tolerant when one of the periodic childreen dies
	- NWSAPI_GetMeasurement deals better with having both nameserver and
	  memory set
	- optimized nws_extract to go and ask directly to the sensor for the
	  memory it uses
	- -w in nws_extract is now more persistent

2.7
	- fixed --enable-debug (failed to disable debugging in few particular
	  cases)
	- GetHostInfo is now in host_protocol.c
	- Added HostHalt, HostMemoryInfo and HostNameServerInfo functions to
	  host_protocol.c 
	- Added HostChangeNameServer function to host_protocol.c
	- Added HostChangeMemory function in host_protocol.c: it's not
	  completely functional yet because the children of nws_sensor don't
	  know hot to change memory
	- non-blocking sockets work on bluehorizon (AIX)
	- removed obsolete -L from nws_extract
	- fixed typo in nws_forecast.1 (thanks Martin Quinson)
	- clean up make dist (thanks Martin Quinson)
	- fixed make install (was forgetting an include file)
	- Fixed IncomingRequest: bad things could have happened when timeOut
	  was 0
	- IPAddress is now a structure (needed to compile on CRAY SV1 and
	  perhaps more)
	- PERIODIC_SERIES is now obsolete, substituted by PERIODIC_EXPERIMENT
	  (periodic.c: modification needed in order to be able to change
	  dynamically the memory of the sensor)
	- CLIOQUE_SERIES is now obsolete, substituted by CLIQUE_EXPERIMENT
	- fixed glitches on IA64 (size_t was the culprit in the message header)
	- IncomingRequest can now be used in a polling fashion (using a
	  negative timeout). Used at least by Martin Quinson.
	- got working on alpha (problem with va_list and our old friend
	  SIG_FPE)
	- Fixed a pretty obscure bug in RecvBytes that got the code to spin
	  for timeOut before returning failure.
	- added an experimental -f option to the sensor (don't fork to run
	  experiment)
	- all the experiments should be saved into memory using
	  RegisterExperiment (in host_protocol.c) since the memory can change
	  dynamically. Modified periodic.c and clique.c to do just that.
	- started to remove host_desc from the source code
	- got to work on FreeBSD 4.7 (lotsa warning but ...)
	- sensors funcitons are now in sensor.c (and defined in nws_sensor.h):
	  this would allow to run a sensor in a thread of a running process
	- added the START sensor for condor (rich)
	- fixed a socket leak when --enable-treads was configured
	- added PortabilitySelect as a wrap on select for EINTR
	- added CLIQUE_NEW_MEMBER and CLIQUE_REMOVE_MEMBER messages (highly
	  experimental)
	- fixed a wrong resource reported by the clique registrations (thanks
	  Vladimir)
	- added SKILL_EXPERIMENT, SKILL_RESULT and SKILL_FAILED messages.
	  SKILL_EXPERIMENT will allow to exercise remotely any skill and get a
	  SKILL_RESULT back.
	- UseSkill doens't use anymore global variables. SkillResults need to
	  be freed.
	- added nws.3 manpage to explain the nws API. Still in its infancy but
	  hopefully already usefull.
	- modified the network sensor to be able to deal with non-blocking
	  sockets.
	- default experiment size is now 256kB
	- we do generate a single NMI bundle (and we included the SDK into it)
	- install includes and libraries with flavor when installing with
	  globus
	- globus flavor (when compiling with globus) will override
	  --enable-debug and --enable-threasd
	- removed old WITH_THREAD flags (old threads locking is obsolete)
	- thread locks now uses condition variables to avoid busy spin
	- added NWSAPI_GetMemory and removed ldap stuff from nws_api.c and
	  rationalize the settings of the default servers (NS and memory,
	  formerly only NS was set correctly).
	- nws_extract now works even without specifying the nameserver.
	- added HOST_REGISTARTION and HOST_MY_REGISTRATION message in
	  host_protocol.c Added HostGetRegistration to get the registrations.
	- availability sensor should be portable now.
	- provided a default passive memory sensor for Solaris (and OSes which
	  provides sysconf)

2.6
	- Slightly changed the way -n works: now it really overrides the host
	  name
	- Added GetHostInfo function to register module
	- more LDAP cleaning 
	- now every host tries to unregister before exiting
	- Cleaned up the code to register with a nameserver and the failover
	  code in case the primary nameserver is unresponsive
	- RegisterObject deals with failover nameservers
	- UnregisterObject deals with failover nameservers
	- nameserver answers to HOST_REGISTER registering with another
	  nameserver (it will force the mirroring option on)
	- optimized the Lookup query to reduce internal load to the nameserver
	- optimized most common Unregister filter
	- Fixed the UnregisterObject bug for real
	- nws_search changed the command line

2.5.1
	- Fixed a bug in UnregisteredObject where too many objectes were
	  removed

2.5
	- Fixed missing #include in memory sensor
	- added -n options to memory, nameserver and sensor to force a
	  hostname (useful when gethostname returns something funky)
	- added UnregisterListener function
	- added non blocking socket as a configure option
	- fixed getopt() usage in few places (whattime comes to mind)
	- fixed nws_extract -w (thanks Rodrigo Real and Luciano Cavalheiro da
	  Silva)
	- REALLOC defines now a local function (avoid problem on AIX)
	- REALLOC is defined in osutil.h only
	- added PreferredInterface in host_protocol and used when starting a
	  clique (useful to force a inet address in a clique for multi-homed
	  hosts in combination with -a)

2.4
	- LDAP as internal protocol is been declared dead: starting to remove
	  dead code
	- Fixed MicroTime to not overflow
	- Fixed more timeout problems
	- Removed SetNameServer 
	- Added replication awareness code in host_protocol.c
	- Changed EstablishedHost signature
	- NameServer has mirroring capabilities plus some optimizations
	- Added HOST_GET_MEMORY and HOST_GOT_MEMORY messages
	- Added -i option (write pid to file). Thanks Martin Quinson.

2.3
	- this is the version in NMI 3.0. No changes from Beta.

2.3beta
	- added experimental availability sensor
	- fixed timeouts bugs in Recv/SendBytes
	- fixed busy loop bug in IncomingRequest
	- using singinterrupt when available
	- added hooks for nameserver replicas
	- modified ListenFunction to be able to handle versioning
	
2.3alpha
	- removed obsolete files (NEWS, INSTALL and COPYING)
	- fixed some inconsistencies in the build process (make dist
	  complaining about LDIF_objects.txt not been there etc ...)
	- dnutils.{h.c} now are thread-safe: you have to free the allocate
	  memory returned by IPAddress{Image,Machine}_r
	- dnsutils.c now can use inet_aton if available
	- added a loose timeout to re-fresh the dns cache (30 minutes)
	- fixed a possible problem configuring due to the lack of a link to
	  filelist.in (thanks martin quinson)
	- fixed $? in the makefiles (thanks martin quinson)
	- compiling with optimization by default (we don't use -O2 and -g at
	  the same time: debugger got confused)
	- added experimental NFS sensor
	- moved the forecast library to Portability
	- removed Portability/Include/messages.h.in and added messages.h: no
	  need anymore to have it as config file
	- IPAddress is now uint32_t (when available)

2.2.1
	- added vo-grid into the Nwslapd for real
	- fixed the error that a succesfull start_activity was throwing
	- fixed the error when GetMeasurement was asking for more than ...
	  objects
	- fixed a memory leak in the nws_nameserver
	- fixed an error calling SetPktTimeout 
	- simplified the build (consolidated 2 main target: servers and clients)
	- fixed the usage of the Hash in protocol.c
	- NextNws{attribute,object} weren't checking for the return value of
	  strstr: fixed.
	- the nameserver return NS_FAILED now if the registration didn't make
	  it (bad registration or out of memory)

2.2
	- packaged for NMI-R2: there are 2 packages now, nws-client and
	  nws-server (nws-sdk to appear)
	- the Portability library can now be compiled to be thread safe (at
	  least the core functionality): more to go for nws itself (this is
	  not used for NMI and it's still experimental)
	- added a script (NMIbuild) to generate gpt packages of nws-client and
	  nws-server
	- fixed bits and pieces of the build process (extra messages, extra or
	  poor checking etc...)
	- fixed a sarch string that wasn't parsed correctly (we were ignoring
	  the trailing '*')
	- moved some of the headers files to have a better division between
	  Portabolity and NWS
	- the nws_nameserver registers itself to itself (you can see its
	  registration with nws_search) to be consistent
	- fixed various inconsistencies in register.c
	- Nwslapd (LDAP backend/Globus GRIS) updated to support VO-grids and 
	  use internal NWS forecasters
	
2.1
	- packaged for NMI-R1 (gpt metafile etc ...)

2.0     
	- Initial Release, well at least for this ChangeLog