Jan Niggemann (redmine.org team member) wrote:
Do I get this right:
- We provide a software that can use different 3rd party backends.
- One of those backends is broken.
- You expect us to fix / work around it?
Sorry to say, but fixing other projects' bugs is well beyond the scope and possibility of the very small redmine development team.
Please see the note below. I'd like to clarify the expectation: if a project is tightly coupled with a buggy project, it's a problem. Rails 3.2.xx has bugs which will not be fixed and some of them are severe. The bugs may affect specific database backends that Rails uses, but the bug is not in SQLite3 or the SQLite3 gem. It is in ActiveRecord -- an important component of a tightly coupled framework (Rails) that Redmine uses.
Given how tightly Redmine is coupled with Rails, is it unreasonable to expect that the team would put in some effort in understanding the Rails bugs it's hitting? Especially, if the bugs will never be fixed in the Rails version the project uses?
As is, closing every bug that refers to these problems with recommendation to upgrade to MySQL does not reflect the actual problem.
While that is true in the sense that we are not able to help all users affected by bugs in this 3rd party backend, there's nothing we can do about that, except encourage you to develop patches, send them to the rails devs and fight to get them accepted...
Do you mean the third party back-end being Rails? Because that is where the bug is (not in SQLite3). Specifically, the bug is in ActiveRecord.
I suppose maybe "Rails SQLite adapter" somehow implied "the bug is in SQLite3 gem or C implementation". I'm sorry, maybe I did not make it clear -- the bug is in Rails (not in SQLite3 gem or its C library). Is there a way to use Redmine without Rails? As far as I can tell, Rails is not one of "N possible backends", where one could stop using Rails and work around it. Rails itself supports multiple backends and it turns out that this particular Rails bug only affects SQLite3. If the Rails bug affected MySQL I sincerely doubt the response to the issue would be the same (switch to a different database).
Thus I made the suggestion that SQLite3 should not be listed as supported by Redmine -- the Rails version Redmine uses has severe bugs in its use of SQLite3 (ActiveRecord may lock the database from reads by any other processes until its terminated, not rollback transactions properly, and, less severe, attempt to rollback transactions twice). Or at the very least, inform the users that these are outstanding issues that Rails stopped accepting bugfixes for and Redmine will not patch bugs in Rails.
Lastly, if you check the issues referenced in the bug, they actually have pull requests to fix them. Those pull requests will not make into Rails 3.2 as it is closed for bug fixes (as stated in the bug) -- that is why I wanted to inform the consumer of Rails that there are bugs in ActiveRecord. Otherwise, this issue would simply be: "upgrade the Rails version to xxx".