forked from AppScale/gts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE
1447 lines (1337 loc) · 67.5 KB
/
RELEASE
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
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
___ _____ __
/ | ____ ____ / ___/_________ / /___
/ /| | / __ \/ __ \ \__ \/ ___/ __ `/ // _ \
/ ___ |/ /_/ / /_/ /___/ / /__/ /_/ / // __/
/_/ |_/ .___/ .___//____/\___/\__,_/_/ \___/
/_/ /_/
AppScale version 3.8.0, released September 2019
Highlights of features and defects fixed in this release:
- Login continue scheme
- Dispatch Routing from yaml
- Install newer psutils to handle kernel 5.X output of /proc/diskstats
- Allow custom service accounts for restore operations
- Remove Cassandra-specific backup/restore scripts
- Fix usages of ZKTransaction class
- Update bootstrap.sh usage text for agents
- Stop unassigned services
- Remove Fixnum warning
- Remove old zk nodes structure
- Remove outdated scripts
- Display a selection menu for available accounts
- Remove support for Debian Jessie
- Search backup restore
- Store FoundationDB clusterfile content in Zookeeper
- Use monotonic module when measuring intervals
- Limit connection retries when stopping celery
- Support custom service accounts for datastore_admin backups
- Install FoundationDB client libraries
- UA Server backup/restore
- Add a rough interface for managing service accounts
- Remove M2Crypto dependency
- Retry applying transaction mutations
- AppController haproxy reload via monit
- Escape property values when outputting table
- Be more flexible when selecting a composite index
- Remove ntp dependency
- Flatten path before extracting the entity group
- Check if we have flower, and added dependency
- Remove iaas system manager
- Disable ssl verification for Java application server channel client
- AppController command output to standard error / logging verbosity
- No need to use sudo during installation
- Search2 integrated
- Datastore service assignments calculated by admin server not controller
- Delete SDK from AppTaskQueue
- AppController update jsp jar when rebuilding java application server
- Java 8 runtime
- Add initial FDB datastore backend implementation
- Handle scheme redirects with the dispatcher
- Fix non-cloud mode of AppScale launch.
- Perform datastore operations in batches
- Scaled nodes changes
- Stop services concurrently
- Higher TaskQueue e2e test stability
- AppServer generate internal admin login secret where needed
- Add initial implementation of datastore-backed sessions
- App cert
- Move of appscale.tools.agents to appscale.agents - appscale repo.
- Fix python detection in taskqueue tests
- Better venvs support in AppController
- Resolving dependencies between tq and adminserver
- AppServer admin server module should not be enabled for python runtime
- Do not modify /root file mode on install
- Remove support for trusty
- Increase the monit safety sleep time
- Limit version of cassandra-driver
- Dont override hostname
- Use pymemcache to implement the memcache API
- Remove local_ip helper function
- Splitting service specific and service common code
- Retry 3 times with backoff on socket err in AppServer
- AppServer request environment setup
- Remove old soap calls
- Fix the Ruby client's get and set property methods
- Blobstore application id header and relative success url
- AppServer ensure request type set for request
- Add check for system stats
- Use the Python API server for some Java runtime calls
- Removed cached local IP
- Pass app identity calls to the external API server
- Datastore service index manager zookeeper callback state parameter
- Avoid using localhost when waiting for service
- Use output of appscale-admin summary
- Check for more results during query
- Remove haproxy statistics page
- Clear monit environment variables before exec
- Enforce min machines
- Cron schedule list parsing and sub-daily interval crontab generation
- Update default config for java runtime
- Move protobuffer handling to different level
- Remove HAProxy stats URL
- Wait for result before setting chosen task name
- Add faceted search support to the Python runtime
- Continue batch query if limit hasn't been reached
- Restart unavailable instances
- Allow push queue bucket size and max concurrent requests parameters
- Datastore entity locking resolve deadlock retry syntax
- Async coroutine retry for datastore large batches
- Ensure application instances logger tag is 32 characters or less
- Datastore statistics timestamp second resolution
- Configure open file limit for monit
- Add B* instance classes
- Proxy stats 7x performance improvement
- Add aws_subnet_id controller option
- Allow "__key__" along with other equality filters
- Remove "for_cas" field requirement on set
- Access AC and AdminServer with private IPs
- Remove dead code from helper library
- Only list unique items in project list
- Prevent SDK from starting more than one instance
- Remove login role
Known Issues:
AppScale version 3.7.1, released May 2019
Highlights of features and defects fixed in this release:
- Update cron when login property is changed
- Remove --force-private from fast-start.sh
- use dns for ec2 since it resolves to the private ip for marketplace
- Other clouds will use public ips for login property
Known Issues:
AppScale version 3.7.0, released April 2019
Highlights of features and defects fixed in this release:
- InfrastructureManager restructure
- Change jobs to roles
- Raise API server errors as Java exceptions
- Don't add tag data to task if the task has none
- Rescue Errno::EHOSTUNREACH
- Add a timeout to the health check request
- Retry dashboard deploy operations on timeout
- Remove monit maintenance port from the firewall.
- Add required ProjectGroomer argument
- Remove index management from datastore clients
- Add standalone API Server from SDK
- Update allocate methods in datastore stubs
- Replacing zookeeper_locations.json with zookeeper_locations
- Bound update threads
- Use initial flags from increment request
- Add partition list to RabbitMQ stats snapshot
- get_index method reorganizing
- Made appscale.common python3 compatibility changes
- Drop requests that don't match the login property
- Use login property when setting cron locations
- Ensure requests to channel path match
- Use login property as ejabberd host
- Serving status modification for application versions with manual scaling
- Route instances as soon as they are registered
- Smooth current sessions for autoscaling
- Don't wait for autoscaled nodes
- Add support for the target field for cron jobs
- Rework search query parsing and building
- Limit the number of entities fetched per statement
- Store hints within the persistent state directory
- Communicate with ejabberd using private IP address
- Accept multiple values per field in SearchService
- Handle datastore connection errors with TQ server
- AdminServer application deployment check now ignores working directory
- Master reload state
- Postgres connection pool with autoreconnect
- Accept single exception class as retry_on_exception value
- Terminate not started AppServers first
- Check for valid local source archive
- Project ID validation upgrade
- Application scaling for version configuration
- Added service ID validation and modified version ID validation.
- Implement apps.services.list
- Exit early if version is not found in zookeeper
- Use zookeeper for stopped versions
- Ec2 private ips
- Defer to vendored framework for endpoints 2
- Accept all arguments to _handle_request
- Move blob fetching work to DatastoreBlobReader
- Use a fallback mechanism on connection failures
- Test query that exceeds Cassandra page size
- Use gossip to find live Cassandra nodes
- Collect each page of results within callback
- Improve speed of rebalance script
- Move instance fulfillment work to InstanceManager
- Allow change instance type
- Add cassandra status to Hermes
- Fix snapshots caching in Hermes
- Force the push worker to time out stuck tasks
- Optimize Service Stats
- Make communication with rabbitmq async (in Hermes)
- Fix list_tasks method in TaskQueue
- Taskqueue load test
- Taskqueue e2e test
- enable-datastore-viewer.sh: Fix command extracting admin port
- Add IndexManager
- Re-add editing capabilities to datastore viewer
- Add basic pull queue viewer to dashboard
- Logging update to use per-module loggers
- Run datastore servers in a custom slice
- Add support for Bionic
- Add support for Stretch
- Remove support for wheezy
- Fix bionic php dependencies
- Use the unittest module to run end-to-end tests
- Use a patched version of Cassandra
- Decrease Cassandra heap size when sharing roles
- Install Python MySQL client during build
- Update Python and PHP runtime to 1.8.4 SDK
- Pin SOAPpy to version 0.12.22
- Require attrs>=18.1.0
- Ensure newer version of PyYAML is installed
Known Issues:
AppScale version 3.6.0, released August 2018
Highlights of features and defects fixed in this release:
- Close PG connection when cleaning up project
- Catch QueueNotFound error in TQ REST API
- Use security token when making Monit API calls
- Add E2E test for queries involving ID separator
- Error handling for starting or terminating instances
- Handle UpdateIndexes calls
- Add appscale-admin restart command
- Use hmac helper for authentication check
- Stop services in a particular order
- Handle ID separator in key name
- Do not delete push task names immediately
- Fix nginx config for handlers with secure field
- Reduce diffs with the 1.8.0 SDK (Part 2)
- Autoscale logs
- Remove BR service
- Do not validate SSL certs for SOAP services
- PullQueueus on postgresql
- Copy PATH variable from controller environment
- Detect missing row when applying transaction
- Install older tornado when Python is too old
- Add transactional counter test
- Remove indexless sorted ancestor queries
- Counts only ESTABLISHED connections
- Reject lease modifications that specify wrong ETA
- Controller application upload error output now escaped
- AppManager should not re-extract source for an application revision
- Determine new_eta for leased tasks later
- Use ranges to keep track of merge join queries
- AppDashboard redirect cleanup
- Java app server disable TLSv1 protocol
- Use yaml.safe_load rather than yaml.load
- Simplify rollback_transaction method
- Install headless OpenJDK package
- Remove sshguard
- Java AppServer javac build options update for version and debug
- Continue preparing archive despite being a hoster
- Limit version of soap4r-ng
- Disable TLS for ejabberd's http_bind module
- Add more logging to pull queue operations
- Restart rsyslog so the app logs can be recreated
- Clean up group locks when possible
- Fix blobstore-backed GCS operations
- Use HTTP API to stop Monit services
- Skip Nginx connection change for Docker build
- Define proper Java version for Trusty
- Assign the proper number of datastore to machines
- RM-626 Fetch application archive as soon as it's available in deployment
- Handle NoSuchProcess error as success when terminating process
- Increase open file limit for nginx
- Handle reads with the index past the last block
- Replace stub with TaskQueue client
- Wait for all hosts before creating tables
- RM-550 Hermes taskqueue stats
- Reduce diffs with the 1.8.0 SDK
- Handle timeouts when querying available tasks
- Ensure Celery worker gets restarted
- Allow PHP instances to use external API server
- Skip stats generation on undeployed projects
- AppController appserver check thread should exit when there is no work
- Handle "service" element
- Use external App Identity service for Java apps
- Install OpenJDK 8 on Trusty
- Allow Go instances to use external API server
- Continue starting deployment if system user exists
- Handle exception when fetching datastore servers
- Use the ServiceManager to start datastore servers
- Retry creating system users when AppScale starts
- RM-542 Async datastore (communication with Cassandra)
- Fix the version delete API method
- Give more informative messages for GQL errors
- Fix dashboard app list
- Issue-2731 Increase Hermes concurrency
- Consider the version's previous ports as available
- RM-616: Use project_id not versions_key to list apps
- Retry operations when nodes are not available
- RM-624 Start AppManager on compute nodes only
- Define the Cassandra cluster load balancing policy
- Register instances with ZooKeeper
- Allow Java AppServer to use an external API Server
- Upgrade to Cassandra 3.11.2
- Add option to update all composite indexes
- RM-592 - Ensure haproxy configuration is up-to-date
- Adjustable max appservers
- Simplify datastore error handling
- Pin eventlet version
- Replace usages of execute_concurrent
- Add a scatter property to some entities
- Use datastore server registry to toggle read-only mode
- Handle docker as a provider
- Wait for all load balancers to route instances
- RM-589 handle failure on fetching local stats
Known Issues:
AppScale version 3.5.3, released June 2018
Highlights of features/bugs in this release:
- Issue-2813 - Controller won't start with latest version of soap4r-ng (2.0.4)
Known Issues:
AppScale version 3.5.2, released May 2018
Highlights of features/bugs in this release:
- Issue-2770 - Groups are not locked during commit
Known Issues:
AppScale version 3.5.1, released April 2018
Highlights of features/bugs in this release:
- Upgrade to Cassandra 3.11.2
- Handle Docker as a provider
Known Issues:
AppScale version 3.5.0, released March 2018
Highlights of features/bugs in this release:
- Add datastore viewer to the dashboard
- Improve lb responsiveness
- Transaction groomer
- Add push queue stats to Hermes
- Allow group locks to persist when commits fail
- Allow different instance type per role
- Handle key inequality filter within property value
- Change appengine role to compute
- Whitelist inbound service warmup
- Run apps without application element in app.yaml
- Use prefix for the haproxy app config file
- Prevent ProjectGroomer worker from stopping
- Stick to the duty cycle length
- Capture Net::ReadTimeout when using Net::HTTP
- Haproxy consolidate apps
- Patch for GAE Issue # 12783 - Conditional import of RAND_egd from _ssl
- Don't clear cron jobs during an up
- Remove tcp_tw_recycle option
- Replace reference to deprecated role
- Reduce Cassandra memory if running other services
- Allow the dashboard to be updated
- Differentiate between project IDs and version keys
- Encode entity names when acquiring lock
- Add external API server
- Allow Hermes to check RabbitMQ status
- Fix JSP compilation under Java 8
- Handle missing WEB-INF directory
- Account properly for pending AppServer.
- Handle UpdateCron requests
- Quote environment variables
- Don't wait for taskqueue master to start rabbitmq
- Autoscale with N load balancer nodes
- Set log after restart
- Clear logs when flushing
- Add support for Jessie
- Remove support for precise
- Use tornado coroutines when performing retries.
- Add bin, bout, hrsp_4xx, hrsp_5xx to proxy.frontend include list
- Retrieve inbound services from ZooKeeper
- Start proper epmd service even without RabbitMQ
- Perform ZK operations off of the Kazoo thread
- Keep track of ZooKeeper state with TransactionManager
- Move AppControllerClient to separate package
- Kill instances when they exceed memory limit
- Set up blobstore routing on each load balancer
- Wait after a restore for cluster to be ready
- Access Tokens for Admin API
- Forward add_routing_for_appserver
- Include version headers when making TQ requests
- Do not raise HttpError outside context of HTTP request
- Use custom template for combined app log messages
- Define property name based on rsyslog version
- Return appropriate error when a queue is not found
- Fix pidfile for RabbitMQ in Docker
- Add sandbox function for expanduser.
Known Issues:
AppScale version 3.4.0, released Oct, 2017
Highlights of features/bugs in this release:
- Upgraded Appscale images to Xenial
- Introduced ability to deploy and manage multiple services
- Improved celery worker performance by using eventlet pool
- Reduced the number of dashboards running for smaller deployment
- Added capability to store version details in Zookeeper
- Upgraded Cassandra to 3.11
- Improved various autoscaling policies
- Reduced verbosity of logs to improve readability
- Fixed a bug which left behind old celery producer connections
- Moved Hermes configurations to Zookeeper
- Added support for UpdateQueues API
- Allowed external access to Hermes
- Allowed use of separate HAProxy for appservers and services
- Handled graceful instance termination with the AppManager
- Handled graceful stop of Taskqueue servers
- Added some monit interface improvements
- Fixed a bug which allowes datastore clients to keep connections alive
- Changed hosting structure to manage revisions
- Allowed haproxy timeout to be tunable from the tools
- Removed the need for email address while deploying apps
- Fixed a bug to consider nodes with open role before spawning new instances
- Fixed HAProxy stop commands
- Removed tracking of application metadata from UAServer and relied on Zookeeper instead
- Added support for resumable package downloads after failures during the build
- Implemented the datastore_v4.AllocateIds API
- Upgraded to Kazoo to 2.4.0
- Fixed a bug which allowed to properly handle non-ascii codes in Search API
Known issues:
- Transactional tasks do not currently work for Java
- Combined application logs are not currently available in Xenial
AppScale version 3.3.0, released June, 2017
Highlights of features/bugs in this release:
- Added support for Ubuntu Xenial
- Improved autoscaling mechanism to rely on resources capacity
- Removed unnecessary DB request while adding task
- Fixed a bug that caused a DB request to hang indefinitely
- Improved log collection command on appscale-tools
- Simplified the process for enabling the datastore-viewer
- Fixed ejabberd configuration and installation on Azure
- Manual scaling with add-instances in cloud
- Added retry for queue operations to improve reliability
- Clearer error messages if AppScale is not configured correctly
- Fixed a bug that could cause inconsistent state of task when it’s deleted
- Starting only one process per BRServer for easier monitoring
- Improved task queue leases performance
- Fixed a bug with single-property cursor queries that have an equality filter on a multi-valued property
- Improved load balancer configurations
- Improved handling of datastore timeout
- Allocating entity IDs in blocks
- Added base support of Google Admin API
- Improved monitoring of running AppScale processes
- Added docs for starting datastore on its own
- Starting AppScale services in background
- Fixed a bug with a pillow version used for Images API
- Improved rabbitmq stability
- Keep redirect URL after creating a user
- Added performance profiling
- Other minor improvements and fixes
Known issues:
- Transactional tasks do not currently work for Java
AppScale version 3.2.1, released April, 2017
Highlights of features/bugs in this release:
- Fixed appscale upgrade from 3.1.0
- Added dependency python-twisted
- Build when repo update is not required
AppScale version 3.2.0, released April, 2017
Highlights of features/bugs in this release:
- Added support for appscale ssh to role
- Added request ids to TaskQueue and Datastore logs
- Integrated Azure Scale Sets into the agent
- Modified Azure agent to assign Public IPs only for load balancers
- Refined appscale down: added --terminate option
- Redesigned the AppScale Dashboard and added relocate functionality
- Improved Map Reduce and Pipeline support
- Improved appscale get/set property functionality
- Improved appscale status output (in particular for large deployments)
- Improved latency and behavior for autoscaling AppServers and instances
- Improved startup time of AppScale.
- Put centralized Datastore HAProxy on all load balancers
- Put centralized TaskQueue HAProxy on all load balancers
- Fixed a bug that prevented Cassandra from being restarted in some cases after a restore
- Fixed a bug that could lose application requests during a redeploy.
- Fixed concurrency issues during commits in the datastore
- Fixed a bug with GCE persistent storage being mounted incorrectly
- Fixed a bug that caused overloading a single taskqueue node
- Fixed a bug parsing cron jobs when time was 0 and 60
- Fixed a bug where agents would default to spot instances
- Fixed Zookeeper configuration for maximum client connections
- Simplified deployment state handling (merged locations yaml and locations json file)
- Upgraded Cassandra to 3.7
- Upgraded Go to 1.6 and added support for vendoring
- Install Java 8 for Cassandra usage on compatible machine
- Pin wstools to 0.4.3
- Pin tornado to 4.2.0
- Pin google-api-python-client to 1.5.4
- Added dependencies: capnproto, pycapnp
Known Issues:
- There can be some brief downtime when redeploying or updating an application
AppScale version 3.1.0, released September, 2016
- Added support for using Azure as an infrastructure
- Added preliminary support for pull queues
- Added support for more cron formats
- Changed the dashboard, allowing it to be treated like a normal application
- Added flexibility to the Java queue configuration parsing process
- Upgraded Cassandra to 2.2.7
- Made large batch statements and transactions more reliable
- Fixed a bug that prevented multiple dashboard AppServers from running
- Fixed a bug that caused instability when min was undefined
- Fixed a bug that prevented the dashboard from deploying an application
- Fixed a bug that prevented queue configuration changes from taking effect
- Fixed crash when instance_class or max_concurrent_requests were defined
AppScale version 3.0.1, released July, 2016
Highlights of features/bugs in this release:
- Set num tokens without defining initial token to fix problem with restarts
- Fixed bootstrap script to continue upgrade even when detached from HEAD
- Ensure monit is running during an upgrade
- Added Datastore metadata table in the view all records script.
AppScale version 3.0.0, released July, 2016
Highlights of features/bugs in this release:
- Fixed bug with not capping negative numbers at 0 in Memcache API decr()
- Switched to new clustering tool for RabbitMQ
- Fixed bug with key namespaces in Zookeeper transactions
- Locked down UserAppService external port as it's not needed anymore
- Removed unused pycassa references
- Modified dev/test script for deleting all data to run for a single app ID
- Fixed bug in deploying the AppScale dashboard that was preventing login
- Added RabbitMQ/Celery cleanup upon appscale clean
- Specified JSON gem that works with supported version of Ruby
- Added composite index deletion logging
- Write datastore transaction data on commit
- Upgraded to Cassandra 2.1.15
- Added retry mechanism for connecting to Cassandra
- Wait until Zookeeper and enough Cassandra nodes are up to perform upgrade
- Fixed bug in entity validation during upgrade
- Don't require user input during SSH
- Initialize Cassandra config before database upgrade
- Fixed bug in choosing a host for a push task URL hook
- Log monit service errors
- Log the upgrade progress
- Remove app archive upon appscale remove/undeploy
- Removed unused code in AppTaskQueue
- Delete push tasks after completion/expiration
- Fixed bug with updating cron upon app redeploy
- Added logging of datastore results in debug mode
- Removed confusing error about non-existing dir during bootstrap
- Avoid unsafe disk operations on mount
- Wait for at most 30 seconds for a monit operation
- Wait for database quorum for all tokens on start
AppScale version 2.9.0, released June, 2016
Highlights of features/bugs in this release:
- Added an upgrade mechanism to make future platform upgrades easier
- Gave ZooKeeper more responsibility for keeping track of configuration state
- Fixed the "Delete App" functionality in the dashboard
- Fixed a bug that regenerated nginx files needlessly
- Adjusted the placement logic of new AppServers to improve fault tolerance
- Improved AppController stability
- Fixed certificate verification in some cases when a server uses SNI
- Included more AppServer information in the output of 'appscale status'
- Provided a more useful error message for invalid node layouts
- Moved the Cassandra installation directory outside of the Git repository
- Added logging to the UAServer
AppScale version 2.8.0, released May, 2016
Highlights of features/bugs in this release:
- Alternative install for zookeeper was removed
- Start cron in docker for faststart
- Run AppDashboard tests by using nosetests in Rakefile
- Include ssl port in AppDasboard /apps/json route
- Round up cpu usage in appscale status
- Added HAProxy for UserAppServer
- Allow datastore to operate in read-only mode
- Better exception handling by raising specific errors
- System stats are now reported by the SystemManager
- Added deployment key to GCE instance metadata
- Added ability to gather system and platform stats in the AppController
- Defined celery amp backend as scheme
- Added app log rotate when appengine role is not running
- Removed the ability to call monit remotely from MonitInterface
- Removed log rotate scripts for apps during terminate
- Hermes collects monitoring stats from all deployment nodes
- Ensure Datastore logging is configured correctly
- Changed AppController's monit start command to only start Ruby process
- Omitted python version in application stats
- Changed the use of killall to stop the AppController
- Allow multiple filters on kindness queries
- Removed duplicate continue path for Java authentication redirects
- Added HAProxy routing for BlobServer
- Have the controller log to STDOUT
- Cleaned up invalid kind indices
- Fixed multiple equality filters for NDB queries
- Updated the query cursor format to use the one introduced in 1.5.1 SDK
- Reduced build verbosity
- Updated Go to version 1.4.3
- Added new methods in the AppController for the tools to call out to the UserAppServer
- Coordinate backup and restore operations from head node
- Allow Cassandra restore to run without prompting
- Check available space on backup output directory
- Support for new amd64 relocations
- Deploy appscalesensor app for registered deployments
- Cleaner UserAppServer responses
AppScale version 2.7.1, released February, 2016
Highlights of features/bugs in this release:
- A bug in get_app_data that affected upgrades was fixed
- AppScale can be built on Debian Wheezy
- AppScale can be built on a Raspberry Pi 2
- Python applications can now use the vendor module
- Datastore debug logs are more useful
- There are fewer ZooKeeper connection errors
AppScale version 2.7.0, released February, 2016
Highlights of features/bugs in this release:
- Fixed bug in choosing app ports via lsof
- Fixed Vagrant FastStart to pick the correct IP
- Added hourly status log in AppController
- Handle UpdateIndex requests to the Datastore
- Removed hardcoded refs to AppScale home dir
- AppScale now runs on Ubuntu 14.04 LTS (Trusty Tahr)
- Have Monit check app servers via the port
- Increase Java URLFetch API size limit to 33MB
- Clean up expired successful transactions
- Fixed bug in monitoring Nginx
- Updated URLFetch stub to handle socket timeouts
- Keep about 1GB of app logs
- Replaced nc with logger for centralized app log
- Made start services idempotent
- Have Zookeeper autopurge run more often
- Use Monit to stop all running services during appscale down
- Fixed bug that was spawning additional cloud instances
- Better AppController restore flow
- Fixed bug that was causing an app to be disabled
- Assigned application ports will now persist through down/up
- Use Xenial's version of kazoo
- Fixed AppController's stop command
- Removed the use of root RSA keys
- Have the AppManager set up AppServer routing
- Create separate logrotate script per application
AppScale version 2.6.0, released December, 2015
Highlights of features/bugs in this release:
- Fixed bug that was preventing large blob uploads for Java apps
- Avoid unnecessary data decoding when reading from the Datastore
- Configure Monit on the server side
- Better handling of crash logs on the Tools side
- Better handling of health checks when overriden by the app
- AppScale build in Docker container
- Fixed race condition when allocating application ports
- Faststart ability on all supported infrastructures
- Java SDK upgrade to 1.8.4
- Fixed bug with quotes for Java cron jobs
- Limited the number of Zookeeper logs
- Fixed permissions when untarring app code
- Fixed bug in Groomer Monit configuration
- Various Recovery improvements
AppScale version 2.5.0, released November, 2015
Highlights of features/bugs in this release:
- Misc AppController fixes related to port collisions
- Handle reserved delimiters in property values
- Invalid index record grooming
- Keep AppScale logs between restarts
- Backup & Recovery of application source code
- Fixed AppController self-lock issue
- Fixed issue with AppScale not coming up after reboot
- Default monit configuration changes (naming, cleanup, file checks, etc.)
- Fixed bug in removing applications from AppScale
AppScale version 2.4.0, released September, 2015
Highlights of features/bugs in this release:
- Upgraded to Ruby 1.9
- Upgraded Java support to SDK 1.8.1
- Fixed Datastore bug: fetching fewer references than the existing
- Fixed Datastore bug for values containing a reserved delimiter
- Fixed Datastore bug: failed transactions resulting in deleted index entries
- Allow multiple equality filters for single property and zz merge join queries
- FastStart for Google Compute Engine
- Added Shibboleth login capability
- Backbone of Hermes, AppScale's Messenger
- Centralized application log on the head node
- Reporting the ports used by an application
- Better AppScalefile argument parsing
- Better encoding handling for Java XML files
- Fixed Java bug in connecting to the Memcache service
- Fixed Java bug with cron entries not found
- Added BlobInfos implementation in Java Blobstore API
- Removed confirmation page after AppScale login
- Changed bootstrap to build from latest release by default
- Prevent Cassandra from filling up the disk with heap dumps
- Be more aggressive with log rotation
- Added email layer that enables debug mode
AppScale version 2.3.1, released April, 2015
Highlights of features/bugs in this release:
- Remove old dashboard data and add timestamps
- Release locks on soft deletes
AppScale version 2.3.0, released April, 2015
Highlights of features/bugs in this release:
- User management scripts
- Whitelisted Crypto libraries in python
- ZooKeeper autopurge
- Separated out data grooming service
- Crontab update fix
- Fixed functional tests for soap server
- Fixed ZK blacklist check
- Fixed handling application specified environment variables
- Validate crontab lines before inserting
- Removed secret from command line args for application servers
- Use hash of secret for RabbitMQ
- AppController is now a system service
- Improve error messages in EC2
- Removed duplicate entities when doing queries on list properties
- Better handling on AppScale versions
- Removed unused scripts
AppScale version 2.2.0, released Febuary, 2015
Highlights of features/bugs in this release:
- Updated NDB to latest version
- GHOST patch
- No more uncommitted reads outside or inside a transaction
- PHP version fix
- Fixed unit test
- Initial support for Search API (experimental)
- Fix for "+" sign in EC2 key for multinode deployments
- Updated fast start
- Removed unused scripts and deadcode
- Removed apache from build
- Removed ntp call in cronjob
- Updated logic for reconnection to ZK
- Fixed FD leak for ZK
- Native backup and restore for AppScale
- Catching exception from Cassandra causing groomer/garbage collection issues
- Fixed issue when binding to private IP
- Made unit tests run faster
- Added support for all ancestor paths on composite indexes
AppScale version 2.1.0, released December, 2014
Highlights of features/bugs in this release:
- Updated bootstrap script
- No longer overwriting SSL cert and private key on "appscale down"
- NDB patch
- Remove duplicates of host names found in ZooKeeper
- Better logging in AppController
- Use default HAProxy health checking
- Allowing connections to self signed certificates for remote API
- Email fix to allow for multiple attachments (python)
- Removed API checker
- Script to enable datastore viewer by IP
- White listed future builtins
- No longer storing temporary queues
- Reloading taskqueue queues on redeploy
- Increased concurrency of taskqueue celery workers to 10
- Handle new queues when queue definitions change
- Provide an empty cursor if requested
- Force HTTPS when pointing to port 443 (python)
- Dashboard navigation fixes
- Ancestors for composites now always point to the root entity
- Fixed maximum number of groups in a XG transaction
- Catch exceptions for ZK errors in datastore server
- Throw correct exceptions on illegal XG operations (needed for objectify)
- Java has its datastore set to HighReplication
- Added OFair to celery workers to not prefetch tasks
- Increased the number of datastore servers to be a multiple of CPU cores
- Improved groomer to handle more errors and retry
- Disable ssl3 (POODLE)
- Have Groomer delete logs older than 7 days
- Clean up transaction journal in groomer
- More fault tolerance with datastore operations and better load balancing
- Fixed broken unit tests
- Log rotation for saving disk space
- Remove conflicting jars when uploading a Java application
- Make sure jars are copied in when a java application is re-uploaded
- Remote API support for java (custom jar to include in application)
- Retry logic for sending emails (python)
- Have a java error application when an upload goes bad
- Fast start script for easy single node deployment
- RabbitMQ fix for node clustering
AppScale version 2.0.0, released June, 2014
Highlights of features/bugs in this release:
- Better error messages for AppScale tools
- Moved to package installation of most installed software (faster build)
- Cleanup of instances on "appscale down"
- Ability to support more dynamic code layout of Java applications
- Upgraded Cassandra to 2.0.7
- Use ntp service for clock sync
- Have AppScale catch when there are not enough resources on start
- Using openjdk instead of Oracle's JVM
- Fixed issue where monit thought ZooKeeper was not running
- Made build process more resilient
- Dead code elimination
- Wheezy support
- Updated bootstrap script
- Batching for datastore queries (better memory management and stability)
- Support for list composite indexes
- Support for distinct queries
- Projection queries no longer fetch from the entity table (faster queries)
- ZigZag Merge Join optimization
- Taskqueue statistics now reports number of tasks pending in a queue
- Fixed critical bug where a failed slave node would come up as master
- Fixed critical bug with nginx failing to be reloaded
- Experimental OpenStack agent (auto scaling)
AppScale version 1.14.0, released on February 10, 2014
Bugs fixed in this release:
- Removed "s~" character from app IDs (not used in AppScale) (#1428)
- Updated message for MapReduce library (#1427)
- Updated Nginx to latest version 1.5.10 (#1412 and #1411)
- Releasing orphan locks in ZooKeeper (#1410)
- Fixed AppController unit test (#1409)
- Ability to use datastore_admin builtins in AppScale (#1408)
- Cleaned up java AppServer log (#1407)
- Removed unused scheduler in Java TasQueue due to Null Pointer (#1406)
- Increased Cassandra timeout for bigger results from Datastore API (#1405)
- Async logging and more efficient log updates (#1397 and #1403)
- Allow the ability to update the flower password from the AppScalefile (#871 and $864)
- Increased the number of cycles before killing a process (#868)
- Ability to use remote_api in AppScale (#867)
- Fixed unit test for ZooKeeper retry (#866)
- Fixed Java logging (#865)
- Ability to set max memory for application in AppScalefile (#862)
- Exposing monit dashboard in cloud admin console (#861)
- Fix for null values in composite queries (#860)
- Fixing Channel API because AppScale secret changes on redeploy (#859)
- Fixing ZigZag Merge Join queries (#858 and #850)
- Setting max limit to 10k for queries to match GAE (#857)
- Having Channel API return 200s instead of 503 timeouts (#856)
- Cleaning up left over locks (#855)
- Using Nginx port instead of server port where appropriate (#855)
- Fix for multiple filters on a property in composite queries (#851)
- Fix parsing app.yaml for regex for nginx (#849)
- Setting PYTHON_LIB for app.yaml (#848)
- Always rewrite nginx config file on app upload (#847)
- Changed kind delimiter from "!" to 'x/01' (#844)
- Increased cutoff time for all paths to 10 minutes (#843)
- Channel API was missing named arg (#842)
- Notify failed transaction on datastore connection issues (#838)
AppScale version 1.13.0, released on December 19, 2013.
Bugs fixed in this release:
- Composite queries in the Java AppServer should make use of composite indexes
- Users should be able to specify an elastic IP address in their AppScalefile for their head node in Amazon EC2
- Users should be able to specify a static IP address in their AppScalefile for their head node in Google Compute Engine
- Users should be able to deploy applications written with the Go 1 runtime.
- Upgrade ZooKeeper to the latest version.
- pycassa client should be invoked with a list to all database peers, instead of only one peer
- Task Queue API calls should not fail on Eucalyptus, on any number of nodes
- Update Google Compute Engine interface to use v1beta16, since v1beta15 is now deprecated.
- AppController shouldn't write an empty file for API status if it didn't update API status info
- Apps should be able to detect if they are being accessed via HTTP or HTTPS
- Users should be able to use a command-line tool to get and set AppController-specific parameters
- scp flag should rsync over AppServer_Java directory
- AppScalefile template for cloud should include info about static IPs
- Python AppServer should not send empty logs to the AppDashboard
- APIs listed on status page should be displayed in a consistent order
- Fix JPEG decoder error.
- Fix broken IaaS Manager unit tests
- Application redirects from SSL port to non-SSL port, even if the path is set to always encrypted.
- RabbitMQ should not erase all persisted task queue data on disk when starting up
- Add button on Dashboard to go to #appscale
- Using latest version of Celery crashes workers on startup, so use stable version instead
- SOAP timeouts between AppControllers should not cause AppScale to crash or become unresponsive
- AppScale Tools should warn the user if they attempt to run AppScale on a machine with not enough memory for Cassandra
- Use the newest version of boto instead of locking to version 2.6
- 'appscale status' and AppDashboard should not show information about machines from previous runs when elastic IPs are used
- AppScale should start up fine even if the zookeeper user does not initially own the directory where ZooKeeper stores data
- AppController should not crash if APIChecker data is malformed
- Move button to download logs to Log Viewer page, instead of being on Status page
- Correctly calculate CPU and memory usage from top
- AppController should not ping the APIChecker every 20 seconds, but instead once every 5 minutes
- Verify that the loss of a single database peer in an AppScale deployment does not crash AppScale, while other peers still live
- AppScale should not crash intermittently on EC2 with "Cannot find my nodes in list of nodes" message
- Downscaling should kill all old dev_appserver processes, and should politely kill dev_appservers before SIGKILL'ing them
- clear_datastore flag should cause data to be consistently erased on startup on VirtualBox deployments
- AppScale should start up fine in Amazon EC2 if persistent disks get attached at somewhere other than the requested location
- The autoscaler should not add AppServers to machines that have more than 90% CPU used
- Users should be able to tell how many requests per second hit their app when data is received for it
- Visiting the / URL on the Dashboard should go to the status page, not the landing page.
- Users should be able to send commands to be executed on AppScale VMs that include redirection characters
- If a machine is rebooted in an AppScale deployment and its IP address changes, it should not crash when restarting the AppController
AppScale version 1.12.0 was released on September 30, 2013.
Bugs fixed in this release:
- Upgraded GCE image to Ubuntu Precise
- Upgraded KVM image to Ubuntu Precise
- Upgraded VirtualBox image to Ubuntu Precise
- Upgraded Eucalyptus image to Ubuntu Precise
- Upgraded EC2 image to Ubuntu Precise
- Now using monit instead of god to monitor processes, and killing App Engine apps that take up too much memory
- Now using monit to revive nginx if it fails
- Now using monit to revive nginx if it fails
- Now using monit to revive rabbitmq if it fails
- Now using monit to revive ZooKeeper if it fails
- Now using monit to revive haproxy if it fails
- Now using monit to revive ejabberd if it fails
- Now using monit to revive Cassandra if it fails
- Improved Blobstore API fidelity for Python 2.7 apps
- XMPP now works correctly on relocated apps
- Load is rebalanced after scaling events
- AppScale can now run in other AWS regions
- No longer displaying oauth2client warnings on GCE
- Not failing GCE image creation due to modprobe not being supported
- Logging levels off by one in AppDashboard for Python apps
- Fixed broken ImageLoadTest on Python 2.7 Hawkeye
- Java AppServer now reads nginx port from filesystem, instead of as an arg
- Protect access to flower
- Nginx shouldn't expose Blobstore port to users in their apps
- Prevent deprecated Python 2.5 apps from being uploaded
- Allowing users to set keys longer than 250 characters in Java Memcache
- AppServer ports are now automatically reused
- Upgraded Cassandra to 2.0.1
- Nginx and haproxy ports are now automatically reused
- If there is a version mismatch between tools and main, tools now report each version to user and what they can do to fix it
- AppController now gets IP correctly on non-English locales
- Users can now bootstrap AppScale VMs with a list of commands in their AppScalefile
- kill_all_instances_for_app now works every time, instead of just the first time
- Celery works on rebooted VMs in one node deployments
- Cleaned up AppDashboard interface to AppController
- Fixed uploading apps via the AppDashboard
- Removed link to Admin Console in AppDashboard
- Uploading apps via the Dashboard now shows their information there
- AppDashboard now allows users to upload zip files
- Remove app reliably clears apps off the Dashboard
- InfrastructureManager no longer prints users' AWS secret key
- Removing apps then uploading them no longer results in 500s
- Dashboard now shows updated ports for apps after relocation
- Uploading apps via the Dashboard that were removed no longer results in 500s
- Command-line interface now allows users to upload zipped apps
- Upgraded pycassa to 1.9.1
AppScale version 1.11.0 was released on September 30, 2013.
Bugs fixed in this release:
- Updated license to Apache 2.0
- Use devappserver2 for multithreaded Python 2.7 apps
- (Experimental) AppScale should run on Ubuntu Precise
- Enable users to scale up from a single node
- Allow users to dynamically change the port their app runs on
- Support PHP App Engine apps
- Do not let users start AppScale if there are terminated instances with the same keyname
- Providing AppScale with invalid credentials on EC2 or Eucalyptus should fail with a more descriptive error message
- Validate that XMPP, Cron, and Task Queue works on relocated apps
- Fix bulk loader to use new ports for AppDashboard
- Upload app page should include text explaining how to upload apps by default
- 'appscale tail' should tail files across AppScale deployments
- Relocating apps should not cause upload-app to return the wrong port on multinode deployments
- Disable app relocation to firewalled ports
- AppController should persist AppServer info to ZooKeeper
- Relocating apps should result in the correct port being propogated to the AppDashboard
- Removing apps shouldn't cause 502s from nginx
- Give users a better error message if the keyname or group is in use
- 'appscale down' then 'appscale up' should automatically restart apps on the same ports
- Make sure logs get sent to the AppDashboard on Python 2.7 apps
- Add relocate info to AppScale tools usage
- Don't use dashes in keyname and group, since GCE doesn't allow it
- AppDB should reestablish ZooKeeper connections when they are broken
- Don't use appscale.cs.ucsb.edu in blobstore connection string
- Nginx should serve static files with spaces correctly
- Fix Python MapReduce API
- Fidelity fixes for Java Memcache API
- Java App Engine should indicate that its server mode is 'Production'
- Support for Zigzag queries
- Remove TimesTen build files
- Upgrade API checker to Python 2.7
- Use stack size of 226k with Cassandra
- Use updated port on API checker when performing urlfetch on AppDashboard
- Cloud admins should be able to view the App Console for all apps, not just apps they own
- 'appscale down' or 'appscale clean' should remove local AppController state
- Not displaying unknown role on status page
- 'appscale --version' should print version number instead of usage
- lxml should be importable for Python 2.7 apps with new devappserver
- Sleep after VMs have been started in GCE to allow for SSH key injection
- 'appscale up' and 'appscale down' check the same files to see if AppScale is running
- Require Python 2.7 when using GCE, since the Google library requires it
- Include gflags in build script
AppScale version 1.10.0 was released on August 28, 2013.
Bugs fixed in this release:
- Automatically persisting data across AppScale runs in EC2/Eucalyptus if EBS volumes are provided
- Automatically persisting data across AppScale runs in GCE if PD volumes are provided
- Automatically persisting data across AppScale runs in VirtualBox
- AppScale now restarts if machines were halted or powered off
- Allowing users to specify what availability zone instances are spawned in
- Serving static files via nginx for Java App Engine apps
- Simplified autoscaling system
- Passing over more detailed information about why the AppController crashes when a non-recoverable error ocurrs
- Improved Java Datastore API fidelity
- createLogoutURL in Java Users API now redirects users back to the specified URL
- 'appscale clean' no longer sometimes requires 'force: True' on subsequent 'appscale up's
- Added support for CAS in Python Memcache API