C-K-Loan opened a new issue, #29572:
URL: https://github.com/apache/airflow/issues/29572

   ### Apache Airflow version
   
   2.5.1
   
   ### What happened
   
   My Airflow started giving `Database is Locked` Errors.  I tried uninstalling 
everything and deleting `~/airflow` but kept getting db locked errors. 
   My final try  was to setup everything in a new home directory, i.e I set 
   `export AIRFLOW_HOME=~/airflow2` 
   
   then I create a new DB 
   ```
   python3 -m airflow db init
   ```
   gives the following logs 
   
   ``` 
   DB: sqlite:////home/ckl/airflow2/airflow.db
   [2023-02-16 13:05:40,430] {migration.py:204} INFO - Context impl SQLiteImpl.
   [2023-02-16 13:05:40,430] {migration.py:207} INFO - Will assume 
non-transactional DDL.
   INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
   INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
   INFO  [alembic.runtime.migration] Running stamp_revision  -> 290244fb8b83
   WARNI [airflow.models.crypto] empty cryptography key - values will not be 
stored encrypted.
   Initialization done
   ```
   
   
   then I start the scheduler in one shell
   `python3 -m airflow scheduler` 
   with logs 
   ```
     ____________       _____________
    ____    |__( )_________  __/__  /________      __
   ____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
   ___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /
    _/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
   [2023-02-16 13:14:05 +0100] [4170653] [INFO] Starting gunicorn 20.1.0
   [2023-02-16 13:14:05 +0100] [4170653] [INFO] Listening at: http://[::]:8793 
(4170653)
   [2023-02-16 13:14:05 +0100] [4170653] [INFO] Using worker: sync
   [2023-02-16 13:14:05 +0100] [4170654] [INFO] Booting worker with pid: 4170654
   [2023-02-16 13:14:05 +0100] [4170655] [INFO] Booting worker with pid: 4170655
   [2023-02-16 13:14:07,512] {scheduler_job.py:714} INFO - Starting the 
scheduler
   [2023-02-16 13:14:07,512] {scheduler_job.py:719} INFO - Processing each file 
at most -1 times
   [2023-02-16 13:14:07,514] {executor_loader.py:107} INFO - Loaded executor: 
SequentialExecutor
   [2023-02-16 13:14:07,520] {manager.py:163} INFO - Launched 
DagFileProcessorManager with pid: 4170697
   [2023-02-16 13:14:07,521] {scheduler_job.py:1408} INFO - Resetting orphaned 
tasks for active dag runs
   [2023-02-16 13:14:07,577] {settings.py:58} INFO - Configured default 
timezone Timezone('UTC')
   [2023-02-16T13:14:07.586+0100] {manager.py:409} WARNING - Because we cannot 
use more than 1 thread (parsing_processes = 2) when using sqlite. So we set 
parallelism to 1.
   ```
   
   
   
   and in a separate shell I start the webserver
   
   ` python3 -m airflow webserver -p 6969` which creates all the default users 
etc.. (which gives no exceptions, all good)
   
   Now the problem occurs, while airflow is initiazing all these users , the 
scheduler shell starts throwing exceptions
   
   
   ```
   2023-02-16T13:14:07.586+0100] {manager.py:409} WARNING - Because we cannot 
use more than 1 thread (parsing_processes = 2) when using sqlite. So we set 
parallelism to 1.                                            
   Process DagFileProcessor4-Process:                                           
                                                                                
                                                        
   Traceback (most recent call last):                                           
                                                                                
                                                          File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
1900, in _execute_context                                                       
                                              
       self.dialect.do_execute(                                                 
                                                                                
                                                        
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", 
line 736, in do_execute                                                         
                                                
       cursor.execute(statement, parameters)                                    
                                                                                
                                                        
   sqlite3.OperationalError: database is locked                                 
                                                                                
                                                        
                                                                                
                                                                                
                                                        
   The above exception was the direct cause of the following exception:         
                                                                                
                                                        
                                                                                
                                                                                
                                                        
   Traceback (most recent call last):                                           
                                                                                
                                                        
     File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in 
_bootstrap                                                                      
                                                               
       self.run()                                                               
                                                                                
                                                        
     File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run    
                                                                                
                                                        
       self._target(*self._args, **self._kwargs)                                
                                                                                
                                                        
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/dag_processing/processor.py",
 line 174, in _run_file_processor                                               
                                              _handle_dag_file_processing()     
                                                                                
                                                                                
               
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/dag_processing/processor.py",
 line 155, in _handle_dag_file_processing                                       
                                          
       result: tuple[int, int] = dag_file_processor.process_file(               
                                                                                
                                                          File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/utils/session.py", line 
75, in wrapper          
       return func(*args, session=session, **kwargs)                            
                     
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/dag_processing/processor.py",
 line 768, in process_file
       dagbag.sync_to_db(processor_subdir=self._dag_directory, session=session) 
                                 
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/utils/session.py", line 
72, in wrapper          
       return func(*args, **kwargs)                                             
                             
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/models/dagbag.py", line 
645, in sync_to_db      
       for attempt in run_with_db_retries(logger=self.log):                     
  
   File "/home/ckl/.local/lib/python3.10/site-packages/tenacity/__init__.py", 
line 384, in __iter__
       do = self.iter(retry_state=retry_state)
     File "/home/ckl/.local/lib/python3.10/site-packages/tenacity/__init__.py", 
line 362, in iter
       raise retry_exc.reraise()
     File "/home/ckl/.local/lib/python3.10/site-packages/tenacity/__init__.py", 
line 195, in reraise
       raise self.last_attempt.result()
     File "/usr/lib/python3.10/concurrent/futures/_base.py", line 451, in result
       return self.__get_result()
     File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in 
__get_result
       raise self._exception
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/models/dagbag.py", line 
657, in sync_to_db
       serialize_errors.extend(_serialize_dag_capturing_errors(dag, session))
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/models/dagbag.py", line 
628, in _serialize_dag_capturing_errors
       dag_was_updated = SerializedDagModel.write_dag(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/utils/session.py", line 
72, in wrapper
       return func(*args, **kwargs)
     File 
"/home/ckl/.local/lib/python3.10/site-packages/airflow/models/serialized_dag.py",
 line 152, in write_dag
       .scalar()
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 
2892, in scalar
       ret = self.one()
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 
2869, in one
       return self._iter().one()
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 
2915, in _iter
       result = self.session.execute(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 
1714, in execute
       result = conn._execute_20(statement, params or {}, execution_options)
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
1705, in _execute_20                                                            
                                              
       return meth(self, args_10style, kwargs_10style, execution_options)
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", 
line 334, in _execute_on_connection
       return connection._execute_clauseelement(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
1572, in _execute_clauseelement
       ret = self._execute_context(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
1943, in _execute_context
       self._handle_dbapi_exception(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
2124, in _handle_dbapi_exception
       util.raise_(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 
210, in raise_
       raise exception
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 
1900, in _execute_context
       self.dialect.do_execute(
     File 
"/home/ckl/.local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", 
line 736, in do_execute                                                         
                                                
       cursor.execute(statement, parameters)
   sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is 
locked
   [SQL: SELECT ? AS anon_1 
   FROM serialized_dag 
   WHERE serialized_dag.dag_id = ? AND serialized_dag.last_updated > ?]
   [parameters: (1, 'example_xcom_args', '2023-02-16 12:14:36.805117')]
   (Background on this error at: https://sqlalche.me/e/14/e3q8)
   
           
   ```
   The UI is accessible, but it says
   ``` 
   The scheduler does not appear to be running. Last heartbeat was received 5 
minutes ago.
   
   The DAGs list may not update, and new tasks will not be scheduled.
   
   ``` 
   
   
   This essentially leaves my airflow in an unusable state. 
   
   
   ### What you think should happen instead
   
   scheduler should not throw db locked exceptions
   
   ### How to reproduce
   
   See main post
   
   ### Operating System
   
   Pop!_OS 22.04 LTS
   
   ### Versions of Apache Airflow Providers
   
   ```
   apache-airflow                      2.5.1
   apache-airflow-providers-amazon     6.1.0
   apache-airflow-providers-common-sql 1.3.0
   apache-airflow-providers-ftp        3.2.0
   apache-airflow-providers-http       4.1.0
   apache-airflow-providers-imap       3.1.0
   apache-airflow-providers-sqlite     3.3.0
   ```
   
   ### Deployment
   
   Virtualenv installation
   
   ### Deployment details
   
   I just setup via shell on my private server
   
   ### Anything else
   
   Working fine for a long time.
   Today a job started throwing OOM errors and since then my airflow is all 
messed up .
   Maybe some rouge process is still around? 
   But to make sure thats not the case, I setup everything in a new directory. 
   
   not sure what else todo, I have no physical access to the machine right now 
and restarting iit is not an option
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to