OJS 3.2.0-2 cache\fc-pluginSettings-1-defaultthemeplugin.php): failed to open stream: Resource temporarily unavailable

This error keeps appearing in the log. Permissions are ok as I have granted IIS full permissions on the ojs folder. I am stuck and has found no way out yet.
PHP 7.3 IIS MySql 8.0.xx

Any help in this regard will be highly appreciated…

Hi @Farhan_Abbas,

OJS is attempting to use the PHP file_put_contents function to write to cache\fc-pluginSettings-1-defaultthemeplugin.php, but the PHP function is returning an error. Usually this is a file permission problem, although it could be something else server-side like the maximum number of open files being encountered or something else. I’d suggest experimenting with the file_put_contents function outside of OJS, e.g. by writing a small test script, in order to make sure it’s working with OJS removed from the equation.

Regards,
Alec Smecher
Public Knowledge Project Team

Ok Sure I will try it and let you know…
Thanks for your prompt reply…

Regards,
Farhan

I performed 2 tests with file_put_contents.

  1. by putting a text file on the root of website and using the function.
  2. by putting the text file in cache folder of ojs and using the function.
<?php $file = 'journal/cache/people.txt'; // Open the file to get existing content $current = file_get_contents($file); // Append a new person to the file $current .= "John Smith\n"; // Write the contents back to the file file_put_contents($file, $current); echo ('file_put_contents succeeded'); ?>

It ran successfully. What else can I try???
Regards,
Farhan

Hi @Farhan_Abbas,

Can you try with the specific path/filename from the error message? (To clean up afterward, just remove the file so that OJS can re-generate it.)

Regards,
Alec Smecher
Public Knowledge Project Team

Ok I am gonna try your suggestion and let you know about the result.

Kind Regards,
Farhan Abbas

My test was successful with the file in question but ojs is still throwing the same warning. :frowning:
What else can be tried?
@asmecher

Regards,
Farhan Abbas

Hi @Farhan_Abbas,

Hmm, interesting – and you’re sure you used the exact same path/filename as the error message (e.g. with respect to forward-slashes vs. backslashes)?

Regards,
Alec Smecher
Public Knowledge Project Team

I did :slight_smile:
@asmecher

Regards,

Hi @Farhan_Abbas,

Very odd. Unfortunately I can’t try to replicate this as it seems to be dependent on a Windows machine. I wonder whether it could be tied to a filesystem limitation, like the number of open files allowed or something similar…

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher
What should I try further?
Regards,

Any update on this? I was running Windows Server 2016 but I upgraded to 2019 last night

Hi all,

Can either of you confirm whether this issue started appearing with a specific version of OJS? For example, did you previously run OJS 3.1.2-0 without problems, then start seeing this issue after upgrading to OJS 3.2.0-2?

Regards,
Alec Smecher
Public Knowledge Project Team

In my case, yes I was not receiving this error in the previous version of OJS. This is something new for me… And no solution so far at my end.

Regards,

Hi all,

The strange thing is that none of the cache-related code has changed for a very long time. Unfortunately I’m not able to replicate the problem myself, as I don’t have a Windows-based machine.

Do either of you have git and PHP experience? One way forward might be to try some work-in-progress code that replaces the caching toolset with a third-party library – that work is in progress here: pkp/pkp-lib#3304 Replace homebrew caching with Stash by asmecher · Pull Request #5743 · pkp/pkp-lib · GitHub

I don’t recommend applying those changes at the moment, but if you’re interested and have some of the necessary skills, we could head in that direction.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi all,

One more question about the test you ran, @Farhan_Abbas – did you execute this via the web server or via the command-line PHP interpreter?

Regards,
Alec Smecher
Public Knowledge Project Team

I executed the script via web browser.

I am not sure whether we can use something which is under development. I will wait a bit longer.

Regards,
Farhan Abbas