Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
things we need not forget to fix better
Reintroduce a pure-Perl version of ModPerl::Util::unload_package() The problematic XS version is now called unload_package_xs() and not used by default. Enable the XS version back by defaults with: $ModPerl::Util::DEFAULT_UNLOAD_METHOD = 'unload_package_xs';
todo
merge apache2-rename-unstable to trunk
more things to do
getting Segfaults under Apache::Reload
philippe has fixed this already
todo
todo
If $r->document_root was modified, restore it at the end of request. Reviewed by: joes Written by: stas
Apache::ServerRec method which set the non-integer fields in the server_rec, now copy the value from the perl scalar, so if it changes or goes out of scope the C struct is not affected. Using internal perl variables to preserve the value, since using the server pool to allocate the memory will mean a memory leak
add the details
new item
new bugs
The reported PerlRun leakage isn't a release blocker, so move it to bugs.
note release-checklist in release
APR::BucketAlloc: new now holds onto the pool object and doesn't release it until it itself is destroyed
no need for a special handling of out-of-scope pools for $b->setaside($p) as it's already handled internally by APR
- APR::Pool: new: create dependency on the parent pool - adjust MP_APR_POOL_SV_DROPS_OWNERSHIP_RUN to carefuly unwind that dependency to avoid too early destruction of the parent pool, which otherwise would nuke the child pool.
- Apache::RequestUtil: new: create the pool dependency - adjust modperl_xs_sv2request_rec not to assume that there is only one magic: check that mg->mg_ptr is set (i.e. created by modperl and not Apache::RequestUtil::new) before returning it
test the $| behavior under tied STDOUT
APR::URI: parse: make the pool object dependency
- just figured that all XS wrappers returning strings already copy the string, so it doesn't matter if the pool goes out of scope or not - consider to avoid copying though
* there was a report about PerlRun leaking memory. the reporter didn't give any more details, but I suspect that it's due to ModPerl::Util::unload_package() which perfectly fits the timing when the leak was introduced (when PerlRun started to use unload_package).
deal with a situation where an object is used to construct another object, but it's then auto-DESTROYed by perl rendering the object that used it corrupted. the solution is to make the newly created objects refer to the underlying object via magic attachment. only objects using objects that have DESTROY are effected. This concerns some of the methods accepting the APR::Pool object. Adjusted: - APR::Brigade: new - APR::Finfo: stat - APR::IpSubnet: new - APR::Table: copy, overlay, make - APR::ThreadMutex: new
things to work on (not showstoppers for RC2, but for 2.0)
Ignore Apache-Test/META.yml in distribution tarballs until PAUSE is capable of handling multiple META.yml files in one distro
for RC2 need to temporarily fix makemanifest to exclude Apache-Test/META.yml
resolved
$bb->cleanup is no more segfaulting (was segfaulting due to a broken prototype in APR, and consequently invalid XS glue code)
another issue to resolve
Tested current mod_perl against : prefork-2.0.47 : 100% OK prefork-2.0.48 : 100% OK worker-2.0.47 : 100% OK worker-2.0.48 : 100% OK Good thing I had some old 2.0.47/48 builds lying around ;-)
someone needs to test 2.0.47|8 - I can't build those Apache versions
PAUSE support for generations is not there and doesn't look like it'll happen any time soon.
SizeLimit is ported (threads issues go into todo list)
Apache::RequestUtil : $r->child_terminate() implemented for non-threaded MPMs.
resolve one more issue
port Apache::Resource
shrink the baby
on windows $pool->clean, followed by $pool->destroy no longer breaks (apparenly fixed by the recent rewrite of APR::Pool implementation)
we don't really need %ENV saved/restore for 'SetHandler modperl', since power users can use 'perl-script' with additional config options to emulate this (but really $ENV changes should be local'isez). And if we ever add this feature, we should be consistent and handle @INC, $/, STDOUT's $| and END blocks as well (which are restored under 'perl-script'.
apr dev doesn't care about doing proper naming for the constants, so just leave things as they are
another issue to deal with
enclose all occurences of eval_* with ENTER;SAVETMPS; ... FREETMPS;LEAVE; previously things just happened to work, due to external scopes which was not very reliable and some change could introduce obsure bugs.
enclose all occurences of eval_* with ENTER;SAVETMPS;
Remove magicness of PerlLoadModule and implement Apache::Module::add() for modules that implement their own configuration directives PR: Obtained from: Submitted by: Reviewed by:
Fix Modperl::Util::unload_package() [Gozer] - Mistakenly skipping small entries of size 2 and less - Leave entries from other packages alone PR: Obtained from: Submitted by: Reviewed by:
This bug clearly needs to be in todo/release. PR: Obtained from: Submitted by: Reviewed by:
Implement Apache->unescape_url_info in Apache::compat and drop it from the official API for CGI::Util::unescape() as a suggested replacement PR: Obtained from: Submitted by: Reviewed by:
$r->document_root can now be changed when safe to do so PR: Obtained from: Submitted by: Reviewed by:
Reimplement APR::Bucket using apr_bucket_alloc_t -
* $bucket_alloc argument added to APR::Bucket::new
* new subs:
APR::Bucket::setaside
APR::Bucket::alloc_create
APR::Bucket::alloc_destroy
APR::Brigade::bucket_alloc
* new setaside implementation, using pool buckets
instead of heap buckets for better performance
and leak safety.
Reviewed by: stas
$r->log_reason has been ported and moved out of Apache::compat PR: Obtained from: Submitted by: Reviewed by:
APR::OS::thread_current renamed APR::OS::current_thread_id and now returns the actual thread_id instead of an object that needed to be dereferenced to get at the thread_id PR: Obtained from: Submitted by: Reviewed by:
more status updates PR: Obtained from: Submitted by: Reviewed by:
some features_missing items have moved to the mp2 release priority, other had their post 2.0 release priority raised PR: Obtained from: Submitted by: Reviewed by:
Static vs. Dynamic build docmunentation completed PR: Obtained from: Submitted by: Reviewed by:
remove PerlSetVar/PerlAddVar foo
Record pointer to the open PerlLoadModule issue. PR: Obtained from: Submitted by: Reviewed by:
Apache::Log is done PR: Obtained from: Submitted by: Reviewed by:
child_terminate is a showstopper for 2.0 release PR: Obtained from: Submitted by: Reviewed by:
Added ModPerl::Util::unload_package() to remove a loaded package as thoroughly as possible by clearing it's stash. Adjusted <Perl> sections, Apache::Reload and ModPerl::Registry to use the new function. PR: Obtained from: Submitted by: Reviewed by:
updates PR: Obtained from: Submitted by: Reviewed by:
Added APR::URI->rpath method. Returns the path of an uri minus path_info, if any. PR: Obtained from: Submitted by: Reviewed by:
moved Apache::current_callback() to ModPerl::Util::current_callback where it belongs PR: Obtained from: Submitted by: Reviewed by:
Added $r->content_languages in Apache::RequestRec PR: Obtained from: Submitted by: Reviewed by:
update PR: Obtained from: Submitted by: Reviewed by:
status update PR: Obtained from: Submitted by: Reviewed by:
things to do PR: Obtained from: Submitted by: Reviewed by:
pod manpages are now glued to all .pm files for which .pod exists PR: Obtained from: Submitted by: Reviewed by:
- make sure that $b->remove is not called before $r->read. since if it does, and there is a filebucket, it'll get split into more than bucket and all but the first bucket will be lost. after read() it's safe to unlink the old bucket - while fixing the above issue, simplified several filter/protocol tests PR: Obtained from: Submitted by: Reviewed by:
todo PR: Obtained from: Submitted by: Reviewed by:
typo PR: Obtained from: Submitted by: Reviewed by:
more issues to resolve for 2.0 release PR: Obtained from: Submitted by: Reviewed by:
Filters should not reset $@ if it was already set before invocation. Perl_warn if an filter error occurs while a previous error already existed to avoid completely losing the error message. PR: Obtained from: Submitted by: Reviewed by: stas
Apache::compat server_root_relative now correctly handles absolute paths like ap_server_root_relative does PR: Obtained from: Submitted by: Reviewed by: stas
The only remaining issue in this todo/release entry regarding <Perl> sections was that you can't write <Perl>1;</Perl> to trigger an early interpreter startup, for instance. This is a limitation of httpd's configuration parser and is just not practical to try and fix. Instead, document the absence of this feature, and suggest using multi-line blocks. Another worthy possibility for early interpreter startup and perl one-liners is to use the (currently under-documented) Perl directive in httpd.conf : Perl 1; Perl warn "Hello World"; PR: Obtained from: Submitted by: Reviewed by:
PerlModule, PerlRequire, Perl and <Perl> is now supported in .htaccess. They will run for each request. If they are used from inside a block, like <Location>, a fatal error will be generated and server startup will be aborted with an error like: "PerlModule directive not allowed in a <FilesMatch> block" PR: Obtained from: Submitted by: Reviewed by:
Geoff words : it's all yours PR: Obtained from: Submitted by: Reviewed by:
macro now dead
apr-dev is saying that APR_STATUS_IS_SUCCESS shouldn't be used and probably even axed, the only logical test for success is rv == APR_SUCCESS
gozer was volounteered
note APR_STATUS_IS_SUCCESS issue
Static builds for httpd >= 2.0.51 available. With the new MP_AP_BUILD option, configure and compile an httpd with mod_perl statically linked in PR: Obtained from: Submitted by: Reviewed by:
temporary commit the implementation that doesn't use $bb->cleanup, which fails on certain setups PR: Obtained from: Submitted by: Reviewed by:
Remove $Apache::Server::StrictPerlSections. Now, all <Perl> sections errors are fatal by default and cause server startup to abort on error. PR: Obtained from: Submitted by: Reviewed by: stas
Created a META.yml for CPAN and friends, including Apache-Test as a private resource to keep CPAN from installing mod_perl when a user just wants Apache::Test PR: Obtained from: Submitted by: Reviewed by: stas
- $socket->recv(), $bucket->read() and $bucket->flatten are now all return the number of bytes read and fill the buffer passed as an argument with the read data - flatten() throws APR::Error exceptions PR: Obtained from: Submitted by: Reviewed by:
a test that reproduces the problem with $@ and filters. needs to be resolved PR: Obtained from: Submitted by: Reviewed by:
disable for now the clear tests, as it causes side-effect problems on windows PR: Obtained from: Submitted by: Reviewed by:
consider changing the allocation method in APR::Bucket::new from malloc/free to bucket_alloc, like all other buckets do PR: Obtained from: Submitted by: Reviewed by:
notes regarding pod gluing PR: Obtained from: Submitted by: Reviewed by:
one more lil' thing PR: Obtained from: Submitted by: Reviewed by:
another thing I need to remember to follow through on
note PerlSetVar/PerlAddVar merge issue so I don't forget
glue_pod is broken PR: Obtained from: Submitted by: Reviewed by:
'SetHandler perl-script' no longer grabs any newly encountered END blocks, and removes them from PL_endav, but only if they are explicitly registered via ModPerl::Global::special_list_register(END => $package_name) (this is a new function). It's now possible to have a complete control of when END blocks are run from the user space, not only in the registry handlers [Stas] END blocks encountered by child processes and not hijacked by ModPerl::Global::special_list_register() are now executed at the server shutdown (previously they weren't executed at all). [Stas] and a few other assorted re-shufflings, too intervowen to commit separately PR: Obtained from: Submitted by: Reviewed by:
as discussed: $Apache::Server::StrictPerlSections should be 1 by default PR: Obtained from: Submitted by: Reviewed by:
mark items that I work or plan to work on also mark a few of the things tha gozer is working on/planning to PR: Obtained from: Submitted by: Reviewed by:
fix PerlAddVar configuration merging (short explanation, lots of work)
clarify per-dir config issue
Anonymous subs are now supported in push_handlers, set_handlers, add_input_filter, etc. A fast cached cv is used with non-ithreaded perl. A slower deparse/eval approach (via B::Deparse) is used with ithreads enabled perls. Further optimizations are planned for the latter case. PR: Obtained from: Submitted by: Reviewed by:
ht_time() w/o the pool is now available only via override/restore compat API. format_time, has been renamed back to ht_time, and the default values for fmt, time and gmt are now supported. PR: Obtained from: Submitted by: Reviewed by:
TestDirective::perlloadmodule6 need to be loaded first is a tests todo (not a showstopper). PerlSwitches must come before perl is started, not much we can do about it PR: Obtained from: Submitted by: Reviewed by:
it's now possible to push new handlers into the same phase that is running at the moment + tests PR: Obtained from: Submitted by: Reviewed by:
Since Apache::SubProcess is now part of the mp2 API, add $r->cleanup_for_exec as a noop in Apache::compat. That function is no longer needed in Apache2. PR: Obtained from: Submitted by: Reviewed by:
When 'perl Makefile.PL PREFIX=/foo/bar' is used and mod_perl 1 is found, but at different prefix no longer require MP_INST_APACHE2=1. PR: Obtained from: Submitted by: Reviewed by:
Perl(Input|Output)FilterHandler handlers are now always AutoLoaded, as if '+' prefix was used. This must be performed to get the access to filter attributes long before the filter itself is executed. + tests PR: Obtained from: Submitted by: Reviewed by:
server_root_relative() now requires either a valid pool or an $r, $s, or $c object as a first argument. also, the returned result is a copy, protecting against cases where the pool would go out of scope before the result.
another issue to deal with before 2.0 PR: Obtained from: Submitted by: Reviewed by:
<Perl> are now evaluating code into one distinct namespace per container, similar to ModPerl::Registry scripts. This finally gets rid of the many problems reported with recursive perlsections and infinite recursion. PR: Obtained from: Submitted by: Reviewed by:
move the issue to the new release file
perrin will port Apache::SizeLimit to mp2 PR: Obtained from: Submitted by: Reviewed by:
the big todo list reorg, work in progress PR: Obtained from: Submitted by: Reviewed by:
some updated for the static build issue
bugs/issues reorg, plan 2.0 release. work in progress [worked out by Geoff, Philippe, Stas in Vegas]
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| apache@apache.org | ViewVC Help |
| Powered by ViewVC 1.1.2 |