• last updated 21 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Part 3 of scalability improvement: provide lock-free implementation of

ad_page_contract_filter_rules. If nothing bad shows up, the

underlaying nsv-arrays can be removed completely.

If one looks at the top 10 nsv mutex locks of a rather busy site

(nsd running for 3 days), one can see the ad_page_contract_filters

and ad_page_contract_filter_rules belong to the most frequent

mutex locks, which can be avoided at completely. These two

arrays make up of nearly 40% of the top 10 nsv locks.

ad_page_contract_filters 38042679

api_proc_doc 37717019

ad_page_contract_filter_rules 26036060

::xotcl::THREAD 18628540

OACS_FULLQUERIES 17771146

ds_properties 7855339

rp_extension_handlers 6837414

apm_subsite_packages_list 3524672

apm_reload_watch 3514474

apm_properties 3514472

Part 2 of scalability improvement: provide lock-free implementation of ad_page_contract_filters (*rules are still missing)

fix for backwards compatibility test for ns_reflow_text

fix documentation

Replace "wrap_string" by "ns_reflow_text", where the latter is a

builtin of newer versions of NaviServer. When "ns_reflow_text" is not

available, provide a scripted version for it.

wrap_string is marked as deprecated, since it has no proper prefix,

and is less powerful than ns_reflow_text

    • -1
    • +1
    /openacs-4/packages/faq/tcl/q-and-a-procs.tcl
    • -1
    • +3
    /openacs-4/packages/webmail/webmail.info
    • -158
    • +158
    /openacs-4/packages/webmail/www/message.adp
    • -95
    • +95
    /openacs-4/packages/webmail/www/preferences.adp
Improve scalability by reducing the number of locks on ad_page_contract_filters (this nsv receives the most locks on e.g. openacs.org)

Use acs_magic_object instead of acs_lookup_magic_object

reduce stress on util_memoize cache by using per-thread cache for magic objects

reduce stress on util_memoize_cache by using per-thread cache for acs::version number

Add files missed by last commit

    • -0
    • +11
    /openacs-4/packages/acs-admin/www/auth/login-attempts.adp
    • -0
    • +67
    /openacs-4/packages/acs-admin/www/auth/login-attempts.tcl
- Add new feature to prevent/slowdown brute force attacks on login by counting the number of

failed consecutive login attempts based on ip-address and subsite.

- Add new package dependency: package "acs-admin" now requires "acs-authentication"

Reduce stress on util_memoize_cache by removing the - by far - most often reused

item in the cache (apm_package_installed_p_not_cached ref-timezones). Instead,

we fall back to the (per-thread) caching of apm_package_id_from_key.

Whitesepace cleanup

white space cleanup and removal of unneeded line

- make sure that length timitation of tsearch vector does not raise errors

- refactor code to avoid redundant logic

- bump version number to 5.10.0d2

Improve handling of unauthorized cases via exception handling

Improve performance of ::xowiki::datasource, especially for huge text/plain xowiki::Files

complete truncated file

factor out naviserver and aolserver specific code

Factor out code for navisever and aolserver

    • -220
    • +1
    /openacs-4/packages/acs-tcl/tcl/memoize-procs.tcl
fix adp expression

reduce error-message swallowing: remove catch operations to trigger error messages, when something goes wrong on the OS-level

fix internal redirection to beautified error pages in connection with host-node-mapped subsites

clean up expression: no need to use backslashes in tcl expression

Upgrade fix

Execute cleanup only if explicitly uncommented, as might have performance implications.

Also, correct unaligned constraint names in old instances upgraded incrementally over the years.

Fix current date UTC query

Add missing change in the data model from previous commit

Portrait management reform and correction

Moved logics to create a portrait in a proc in order to reuse it in other places

such as picture retrieval services (e.g. Bach picture retrieval at WU). Turns out

we were not doing our homeworks here: when the portrait is created into CR, a

cr_child_rel is created. When the portrait was erased though, this was not cleaned

up propely, leaving dangling acs_objects with no reference in cr_child_rels table.

On busy sites, this can grow in the ten thousands order of magnitude. Changes include

also fix for this behavior and tuples cleanup.

avoid errors, when connection is already closed

fix more spelling issues